module type TYPE = sig type t end
(* Evil.ml *)
module type S = sig
module T : TYPE
val eq_int : (T.t, int) Type.eq
end
module Make (T : TYPE) : S with module T = T = struct
module T = T
(* just one innocuous Obj.magic... *)
let eq_int = Obj.magic Type.Equal
end
3 days ago