Introduction
Objective CAML's type system would be much simpler if the language were purely
functionnal. Alas, language extensions entail extensions to the type language,
and to the inference mechanism, of which we saw the illustration with the weak
type variables (see page ??), made unavoidable by
imperative extensions.
Object typing introduces the notion of cyclic type, associated with the
keyword as (see page ??), which can be used independently
of any concept of object oriented programming. The present appendix describes
this extension of the type language, available through an option of the compiler.