MLton is a whole-program optimizing compiler for the Standard ML programming language. MLton's focus is the generation of executables with excellent running time. MLton optimizes across module boundaries and can reduce or eliminate the runtime penalty that arises with separate compilation of SML features such as functors, modules, polymorphism, and higher-order functions. MLton takes advantage of having the entire program to perform transformations such as: defunctorization, monomorphisation, higher-order control-flow analysis, inlining, unboxing, argument flattening, redundant-argument removal, constant folding, and representation selection.

MLton also has a C FFI, a time profiler, and interfaces to many useful libraries (continuations, threads, signals, heap save and restore, ...). It also includes an implementation of arbitrary precision integers that uses the GNU multiprecision library.

For more, please see the MLton home page.

For a list of projects and applications that use MLton, see the MLton projects page.