OCaml programming assignment PL