functor
  (O : Set.OrderedType) (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->
  sig
    type a = Set.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