module type Kind = sig ... endmodule type S = sig ... endmodule Make
  (OT : Stdlib.Map.OrderedType)
  (K : Kind) : 
  S
    with type id = OT.t
     and type Dag.node = OT.t
     and type 'a kind_gen = 'a K.t
     and type Dag.NodeSet.t = Stdlib.Set.Make(OT).t
     and type Dag.NodeSet.elt = OT.t