ocaml functional programming 3819575