Vesa Karvonen wrote: > - signature FOOBAR = sig include FOO BAR end ; > 1.35-1.38: unknown structure or functor `BAR' > > I didn't see a mention of this on the incompatibilities page. Is this > a bug or an intentional feature? My code uses mutiple include (and > sharing constraints) in many places for joining signatures > (relatively) concisely. >
You are right, we forgot to list that as an incompatibility. It is a consequence of a currently undocumented (since only half implemented) feature, namely signature constructors, were you could say: signature S (I : INTEGER) = sig val x : I.t end signature T = sig include S Int31 end Hey, I probably know somebody who could look into the issue - he's doing a thesis on a richer language for signatures at the moment. > Also, the incompatibilities page doesn't mention any rationale for the > multiple open incompatibility. What is the rationale? Note that it > is trivial to write multiple open declarations sequentially when one > wants that effect, but achieving the effect of SML's simultaneous > multiple open with sequential open is more involved (you'll need extra > local structure bindings). I actually have code that makes use of > SML's simultaneous multiple open for brevity --- a single multiple > open also hides temporary structure bindings while also opening > structures, so extra local structure bindings are not needed. > Mh, I remember we were discussing this very issue before, in the context of HaMLet-S, isn't that right? :-) Multiple open/include mixes terrible with higher-order modules and signature constructors (where "open F X" naturally means "open (F X)"). After quite a while of throwing around different design choices I decided to favor a clean solution over an ugly compatibility hack, at least for Alice ML (admittedly, I never liked the syntax of multiple open/include anyway, probably for the very reason that it represents an irregularity that does not scale to such extensions). In any case, even for plain SML I would recommend to never use the parallel-binding ability of multiple "open" - it is a perfect way to confuse readers (it is already hard enough to track the bindings generated by "open" without it). - Andreas _______________________________________________ alice-users mailing list [email protected] http://www.ps.uni-sb.de/mailman/listinfo/alice-users
