functor
  (S : sig
         type a
         val format : Format.formatter -> Deriving_Show.Defaults.a -> unit
       end->
  sig
    type a = S.a
    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