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.
Ocaml decided to be on the "large" while sml kept small it seems. I loved that trait (through Dan Grossman's MOOC). To the point that I found it even nicer to interact with than lisp.
The smallness of SML is a big part of why this is 'A Tour of Standard ML' instead of 'A Tour of OCaml' or 'A Tour of Haskell'. It's small enough to learn in a couple days (in my mind!), but it has all of the niceties of statically typed, immutable functional languages, so it provides a good introduction to those ideas.
That said, I love how small it is, too. Every time I go back to SML, I find it refreshing how much power there is in a few simple ideas expressed well.
ML for the Working Programmer is also an excellent reference. It demonstrates the construction of a theorem prover. As a matter of fact, Isabelle was built with SML.
There's also a famously concise intro to SML (in 22 pages!) by Mads Tofte:
You might want to check out "Unix system programming with Standard ML" by Shipman. The first half of the book covers the basics of SML and the Posix & C interfaces, and also discusses building a simple TCP client and server. The second half of the book is a larger project building a web server:
ConcurrentML has a outgrown its name. It is available in many different languages. I recall hearing Mike Sperber saying that his company usually just re-implemened it in whatever language they happened to work in that week.
It is a really nice system that is similar to go, but the primitives it gives you are in a way a generalisation of go's concurrency primitives.
They can (almost?) always just be inferred, I think (it's been a couple of years since I programmed in ocaml daily).
I personally like using them anyway. If you've done something wrong I recall the parser can sometimes give better error messages if it has them around to orient itself. And for all the complaints people seem to have you really can grow to like them aesthetically - there's something pleasantly blocky and definitive about them I find, like the satisfying thock of a good keyboard.
Here's a pretty thorough comparison of the two http://adam.chlipala.net/mlcomp/