MLton runs fine on the S390 architecture.
When compiling for S390, 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.