functor
  (M : sig
         type t
         val pp : Format.formatter -> t -> unit
         val module_name : string
       end->
  sig val pp : Format.formatter -> M.t -> unit end