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