[MLton] front-end functor bug

Stephen Weeks MLton@mlton.org
Fri, 6 Feb 2004 17:37:20 -0800

>    If I compile with -stop tc -warn-match false (ie., elabOnly), the
>    errors are not reported.
>    If I eliminate (e), the errors are not reported.
>    What is truly confusing is the fact that the line numbers of the errors
>    correspond to (a) and (b), when I can verify that it is the elaboration
>    of (e) that is really causing the problems.

The body of a functor is elaborated when the functor is defined.  If
-warn-match is true, then the body is re-elaborated at each
application of the functor.  If there were no bugs in MLton, then the
re-elaborations would always succeed -- that is what the elaboration
at the functor definition is supposed to prove.  However, there is
some bug that is causing the re-elaboration to fail.  Thus you see the
error in the functor body, and you only get the error if the functor
is called and you are compiling with -warn-match true.

Now, as to the bug, I'm not sure yet.