There is quite a bit of front-end type checking that is not done. If
you feed MLton a type-incorrect program, it might produce a terse
error message and exit, it might fail to terminate, or it might
terminate and produce an executable. Note that this does not mean
that the behavior of an executable generated by MLton is random.
It simply means that the compiler may behave strangely for invalid SML
programs. The behavior of MLton for valid SML programs is well
defined.
It is strongly recommended that you type check your programs with
another SML compiler before compiling them with MLton.