['a] cell
devient co-variant.
class ['a] cell_set x = object val mutable contents : 'a = x method get = x method private set x = contents <- x end;; fun x -> (x : < a : int > cell_set :> < > cell_set);; |
get
, le type ['a] cell
devient contra-variant.
class ['a] cell_get x = object val mutable contents : 'a = x method private get = x method set x = contents <- x end;; fun x -> (x : < > cell_get :> < a : int > cell_get);; |