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.