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