http://www.ocaml-tutorial.org/