MLton runs fine on the ARM architecture.
When compiling for ARM, MLton doesn’t support native code generation (-codegen native). Hence, performance is not as good as it might be and compile times are longer. Also, the quality of code generated by gcc is important. By default, MLton calls gcc -O1. You can change this by calling MLton with -cc-opt -O2.