[MLton] flexible types

Matthew Fluet fluet@cs.cornell.edu
Wed, 11 Feb 2004 17:05:34 -0500 (EST)


SML/NJ rejects this program, claiming that u is a definitional spec and
can't be redefined.  MLton accepts it; are flexible types in signatures
really transitive in this manner?  (i.e., t is definitely flexible, and
can be "where type" constrained, but does that mean u can be as well?)

signature S =
   sig
      datatype t = A | B | C
      type u = t
   end

signature R =
   sig
      structure S : S
   end

signature P =
   sig
      structure S : S
      structure R : R where type S.u = S.u
   end