(Sorry for duplicate mail, I forgot to change the subject in the first one) Hi, I have a type error on code similar to : ----- type 'par t = 'par let ident v = v class alias = object method alias : 'a . 'a t -> 'a = ident (* type error here *) end ----- Which gives : ----- Error: This expression has type 'a. 'a t -> 'a but an expression was expected of type 'b. 'b t -> 'b Type 'a a = 'a is not compatible with type 'b t = 'b ----- The problem is related to unification of foralls containing named type in a method. The compiler accepts equivalent code when not using the named type "t" or when not using a method (see attached file). Is it a [known] limitation ? Is there a way to work around it ?