Not to disagree with Stephen, but since the MLton stack is NOT the machine one, and because of precise GC, it can be moved and can grow and shrink (during GCs). Hence it can be made very small for threads, allowing the possibility to have a great many live threads even in a 32-bit address space.