functor
  (Map : sig
           type key
           type 'a t
           val fold :
             (Pretty.MakeMapPrinter.key -> 'a -> 'b -> 'b) ->
             'a Pretty.MakeMapPrinter.t -> 'b -> 'b
         end) ->
  sig
    val docMap :
      ?sep:Pretty.doc ->
      (Map.key -> 'a -> Pretty.doc) -> unit -> 'a Map.t -> Pretty.doc
    val d_map :
      ?dmaplet:(Pretty.doc -> Pretty.doc -> Pretty.doc) ->
      string ->
      (unit -> Map.key -> Pretty.doc) ->
      (unit -> 'a -> Pretty.doc) -> unit -> 'a Map.t -> Pretty.doc
  end