Le type d'un objet contient la liste de ses méthodes avec leurs types, mais ne montre pas ceux des variables d'instance, qui restent cachés. Considérons la classe:
class point init = object val mutable x = init method getx = x method move d = x<-x+d method print = print_int x end;; # let p = new point 2;; val p : point = <obj>
Nous forçons une erreur de typage afin de voir la structure du type point:
# fun (x : point) -> x+1;; ^ This expression has type point = < getx : int; move : int -> unit; print : unit > but is here used with type int