Hi list, I don't understand the following behaviour: Objective Caml version 3.11.0 # type t = [`A | `B of int u] and 'a u = 'a * t;; Error: In the definition of t, type int u should be 'a u # type t = A | B of int u and 'a u = 'a * t;; type t = A | B of int u and 'a u = 'a * t Anyone's got a simple explanation for this ? ph.