# [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.