Module type semantics in OCaml I am new to OCaml and I am struggling a bit with understanding how module types work.