I finally rewrote the smlc driver script in SML. Interested parties can look at: ~sweeks/smlc/src/main.sml ~sweeks/smlc/src/popt.{sig,sml} There is still a shell script, but it basically just calls the NJ runtime system with the write args -- or, for the self hosting version, will just call with the right world file.