< language > (Originally "CAML" - Categorical Abstract Machine Language) A version of ML by G. Huet, G. Cousineau, Ascander Suarez, Pierre Weis, Michel Mauny and others of INRIA and ENS . CAML is intermediate between LCF ML and SML [in what sense?]. It has first-class functions, static type inference with polymorphic types, user-defined variant types and product types , and pattern matching . It is built on a proprietary run-time system.
The CAML V3.1 implementation added lazy and mutable data structures, a " grammar " mechanism for interfacing with the Yacc parser generator , pretty-printing tools, high-performance arbitrary-precision arithmetic, and a complete library. CAML V3 is often nicknamed "heavy CAML", because of its heavy memory and CPU requirements compared to Caml Light .
in 1990 Xavier Leroy and Damien Doligez designed a new implementation called Caml Light , freeing the previous implementation from too many experimental high-level features, and more importantly, from the old Le_Lisp back-end.
Following the addition of a native-code compiler and a powerful module system in 1995 and of the object and class layer in 1996, the project's name was changed to Objective Caml .
["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS, 1989].