In version 3.9.0, the following program causes an "uncaught exception Io" on my machine. val f = OS.FileSys.tmpName () val _ = TextIO.openOut f The program fails because tmpName is returning a file in /etc, not /tmp. Also, it would be nice if when a program terminates due to an uncaught exception, the exit status would be nonzero.