[MLton] Re: testing MLton's new front end
Stephen Weeks
MLton@mlton.org
Thu, 22 Jan 2004 22:49:55 -0800
> > dec-strdec.sml
...
> > MLton rejects B'', but not C', which the comment says must be
> > rejected, although I don't understand why it must be.
>
> It has to be parsed as two consecutive topdecs, due to the restriction
> stated in section 3, figure 8.
Ahh. I missed that one thanks. I have fixed MLton to handle this
correctly. Feel free to throw some more tests at it whenever I do the
next release.
> > undetermined.sml
...
> > So, MLton rejects this program. I don't have any plans to chage this
> > behavior. I think this a point of disagreement between you and me and
> > that you believe the Definition requires the program to be accepted.
> > In any case, your table gives a MLton a "+" here.
>
> But I don't think there is any unclarity with respect to the examples in
> undetermined.sml. Each type is determined within a single topdec, and
> there is nothing in the Definition that would restrict it further.
Ah, now I understand. You are correct. I have fixed MLton to handle
these examples.
As to the other examples where there are two topdecs, MLton now
rejects those as well.
val a = ref nil;
val _ = a := [1];
val a = ref nil;
structure X : sig val a : int list ref end =
struct
val a = a
end;
It doesn't do it exactly according to section G.8. Rather, it chooses
unique monotypes for the undetermined types that then fail to unify,
which I guess is what Poly/ML and SML/NJ do.