http://caml.inria.fr/pub/docs/manual-ocaml/manual026.html
