A cookbook for common programming tasks in OCaml