Jonathan S. Shapiro wrote:
On Fri, 2005-06-10 at 10:22 -0400, Swaroop Sridhar wrote:

ex:
(import l1 list)
(import l2 list)

This will create
l1::alst : l1::t and
l2::alst : l2::t

One possibility is to make l1::t an l2::t compatible. Other possibility is to keep them different, and now, the situation is very interesting because I have one value alst with 2 alias names and 2 incompatible but equally powerful types.


I think one possibility is that the rule should be:
They are the same type if exported transparently (this will allow them to unify as intended), and different if exported opaquely.


Definitely not. Only one type has been exported. What happened here is
that the *import* created an alias. They are the same type.

You are probably right. But this will create a situation in which a diamond import is different from directly importing a module twice.

Swaroop.
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to