Module Register (M : sig .. end) : S with type t := M.t

Register builds a pp function from a to_string function, and adds the module_name ^ ".pp" to the list of pretty printers. The idea is to statically guarantee that one has the desired pp function at the same point where the name is added.


M : sig .. end


type t
val pp : Format.formatter -> t -> unit