Extended version of OCaml's maps
module type MonadS = sig ... endmodule type S = Stdlib.Map.Smodule type ExtS = sig ... endmodule Make
  (M : Stdlib.Map.OrderedType) : 
  ExtS
    with type key = M.t
     and type 'a t = 'a Stdlib.Map.Make(M).t
     and module Set := Stdlib.Set.Make(M)