There are some differences feature-wise, as well as semantically. Features SML supports but not OCaml: transparent signature ascription module-level let symmetric sharing constraints syntactic sugar for functors over types and values Features OCaml 4 has but not SML: higher-order functors recursive modules local modules nested signatures modules as first-class values general module sharing (sig wi