module type S = sig ... end
Modules that provide a pretty printer will match S
.
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.
module Register_pp : functor (M : sig ... end) -> S with type t := M.t
Register_pp
is like Register
, but allows a custom pp
function rather than using to_string
.