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