http://caml.inria.fr/pub/docs/oreilly-book/