module type S = sig ... endmodule Make : functor (M : sig ... end) -> S with type t := M.tUsed for making an Identifiable module. Here's an example.
module Make_using_comparator : functor (M : sig ... end) -> S with type t := M.t with type comparator_witness := M.comparator_witness