OCaml is a variant of ML and is similar to Standard ML.
OCaml and SML
Here’s a comparison of some aspects of the OCaml and SML languages.
- 
Standard ML has a formal Definition, while OCaml is specified by its lone implementation and informal documentation.
 - 
Standard ML has a number of compilers, while OCaml has only one.
 - 
OCaml has built-in support for object-oriented programming, while Standard ML does not (however, see ObjectOrientedProgramming).
 - 
Andreas Rossberg has a side-by-side comparison of the syntax of SML and OCaml.
 - 
Adam Chlipala has a point-by-point comparison of OCaml and SML.
 
OCaml and MLton
Here’s a comparison of some aspects of OCaml and MLton.
- 
Performance
- 
Both OCaml and MLton have excellent performance.
 - 
MLton performs extensive WholeProgramOptimization, which can provide substantial improvements in large, modular programs.
 - 
MLton uses native types, like 32-bit integers, without any penalty due to tagging or boxing. OCaml uses 31-bit integers with a penalty due to tagging, and 32-bit integers with a penalty due to boxing.
 - 
MLton uses native types, like 64-bit floats, without any penalty due to boxing. OCaml, in some situations, boxes 64-bit floats.
 - 
MLton represents arrays of all types unboxed. In OCaml, only arrays of 64-bit floats are unboxed, and then only when it is syntactically apparent.
 - 
MLton represents records compactly by reordering and packing the fields.
 - 
In MLton, polymorphic and monomorphic code have the same performance. In OCaml, polymorphism can introduce a performance penalty.
 - 
In MLton, module boundaries have no impact on performance. In OCaml, moving code between modules can cause a performance penalty.
 - 
MLton’s ForeignFunctionInterface is simpler than OCaml’s.
 
 - 
 - 
Tools
- 
OCaml has a debugger, while MLton does not.
 - 
OCaml supports separate compilation, while MLton does not.
 - 
OCaml compiles faster than MLton.
 - 
MLton supports profiling of both time and allocation.
 
 - 
 - 
Libraries
- 
OCaml has more available libraries.
 
 - 
 - 
Community
- 
OCaml has a larger community than MLton.
 
 -