Hello,

Le 22 mars 2012 10:51, Roberto Di Cosmo <roberto@dicosmo.org> a écrit :
  val length : ('a1, 'b) l -> int = <fun>

Why do we get 'a1, and not 'a, in the type?

Well, probably, since 'a is instantiated to int during
type checking, it may be the case that 'a, as type name, is
still marked as taken during the type output, so we get ('a1,'b)

The type is perfectly sound... it is just 'surprising' for
a regular user... do you think this should be considered a bug?

IMHO it is not a bug (as you said, the type is sound), but you could write a feature request like "generate variable name as best as possible"...

--
Julien