Dear camlers,

Out of curiosity, I'd be happy to understand why the following definition is rejected:

# module type T = sig type 'a format end;;
module type T = sig type 'a format end
# module F(X : T with type 'a format = 'a list constraint 'a = < .. >) = struct end;;
File "", line 1, characters 13-67:                                                                                           Error: In this `with' constraint, the new definition of format does not match its original definition in the constrained signature:                                 
Type declarations do not match: type 'a format = 'a0 list is not included in type 'a format                                                           

       Their constraints differ.

Would it be unsound to allow it?

Cheers,

ph.