Doesn't the fact that the C back end works at least stronly imply that it is a code generator bug in MLton? I don't quite know how one would go about testing that however.