Author: Christian.Queinnec@lip6.fr

## 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.