functor (O : Map.OrderedType->
  functor
    (K : sig
           type a = O.t
           val format : Format.formatter -> a -> unit
           val format_list : Format.formatter -> a list -> unit
           val show : a -> string
           val show_list : a list -> string
         end->
    functor (V : Show->
      sig
        type a = V.a Map.Make(O).t
        val format : Format.formatter -> a -> unit
        val format_list : Format.formatter -> a list -> unit
        val show : a -> string
        val show_list : a list -> string
      end