[MLton] Error Messages for Missing Sharing/Where Type
Stephen Weeks
sweeks@sweeks.com
Fri, 30 Jun 2006 15:59:55 -0700
> it will give a message saying that A1.a, A2.a cannot be unified as
> usual, but will also say something like "Both A1.a and A2.a are
> flexible type constructors: are you missing a sharing constraint?"
Ok. In elaborate-env.fun, the "dummyStructure" function is used to
create a representative of an interface (elaborated signature) for the
elaboration of a functor body. That function creates new tycons to
instantiate the flexible tycons in the interface, and so could use a
property to annotate each new tycon it creates.
> To do this, it seems like it would be necessary to know either in
> TypeEnv.Type.conAnd or at the time of the various calls to unify in
> elaborate-core.fun whether particular type constructors are flexible
> or rigid.
This code could simply look at the property on the tycons.
When in doubt, the MLtonian way is to use properties :-).