Adaptation of Odersky's "Functional Programming  Principles in  Scala" in OCaml