Better error messages when cloning
Cloning of modules should have more precise errors. In the following commented code, it would be hard to understand where the error really come from (only from the error message).
module M type elt val predicate le elt elt end module Problem predicate le_int1 (i1 i2: int) = True let predicate le_int2 (i1 i2: int) = True (* Both these case should have a nice error. clone M with type elt = int, predicate le = le clone M with type elt = int, val le = le_int1 *) clone M with type elt = int, val le = le_int2 end
This is linked to #202. I assign this to me unless someone else wants to implement it.