>
> What I'm suggesting is that once this distinction exists, we acknowledge
> its existence in the type system and define our collision requirements and
> scopes accordingly. We cannot allow non-lexical anti-collision checks to
> manifest at runtime. So if we are going to admit non-lexical anti-collision
> requirements, we have to restrict the scope of those items to some unit
> that is statically compiled and checked.
>

How can one have an interface in a module without admitting the possibility
of non-lexical collision? Or is this exactly the point you are making? That
we must force compilation units with exported interfaces not to be capable
of asserting implementation selection requirements, so those selections can
be made at a unit which is lexically and statically checked (and which must
not have an interface)?

This runs smack into a major common problem in language and runtime design,
which is that we overwhelmingly favor the pattern of
named-impementation-factory when in most cases
conforming-implementation-factory is not only sufficient, but superior.
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to