Understanding OCaml modules correctly