Chaim Frenkel writes:
: I can't see how objectA's vtbl can handle a cross-operation to objectB's
: vtbl.
: 
: Enlightenment sought.

I'm mostly just trying to bust us out of conventional thinking by
throwing random words around.  I don't know offhand whether multimethod
dispatch would make any sense here as a way to let us shrink the core
further while keeping our dynamic loading options open.  But it seems
slightly bogus to me to use vtbls to concatenate two strings.  That
could be the "core" way, given we only define

    concat(utf8, *)
    concat(utf16, *)
    concat(utf32, *)

but suppose for performance reasons you don't want to view the second
string as dynamically typed.  You could dynamically load in some compile-time
typed routines:

    concat(utf8, utf8)
    concat(utf8, utf16)
    concat(utf8, utf32)
    concat(utf16, utf8)
    concat(utf16, utf16)
    concat(utf16, utf32)
    concat(utf32, utf8)
    concat(utf32, utf16)
    concat(utf32, utf32)

in which case it would be *nice* if concat(utf8,utf8) could simply
slam the two strings together without any of this second vtbl business.
But that implies multimethod dispatch, recalculated when the new routines
are loaded in.  I'm not claiming we want this--I'm just stirring the pot
to keep things from gelling prematurely.

By the way, don't take this as a final design of string types either.  :-)

Larry

Reply via email to