Support for OCaml 3.12: provide List.iteri
Support for OCaml 3.12: first class modules

Fix the following compiler error in Ocaml 3.12:

 * (value expr) not supported yet
Support for OCaml 3.12: more fixes