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.