Ocaml seems to get more buzz, but about 20 years ago I tried my hand at both OCaml and SML/NJ and found that I actually far preferred the latter. SML is a very nice, consistent, and practical language.

Here's a pretty thorough comparison of the two http://adam.chlipala.net/mlcomp/

Today's there's also F#, which is the "" to Ocaml's ";;" and to SML's ";".

Concurrent ML is definitely worth looking at.

The Concurrent ML library for F# is https://github.com/Hopac/Hopac