Module Base.Pretty_printer
A list of pretty printers for various types, for use in toplevels.
Pretty_printer
has a string list ref
with the names of pp
functions matching the interface:
val pp : Format.formatter -> t -> unit
The names are actually OCaml identifier names, e.g., "Base.Int.pp". Code for building toplevels (this code is not in Base) evaluates the strings to yield the pretty printers and register them with the OCaml runtime.
module type S = sig ... end
Modules that provide a pretty printer will match
S
.
module Register : functor (M : sig ... end) -> S with type t := M.t
Register
builds app
function from ato_string
function, and adds themodule_name ^ ".pp"
to the list of pretty printers. The idea is to statically guarantee that one has the desiredpp
function at the same point where thename
is added.
module Register_pp : functor (M : sig ... end) -> S with type t := M.t
Register_pp
is likeRegister
, but allows a custompp
function rather than usingto_string
.