Module Pretty_printer

module Pretty_printer: sig .. end
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. "Core.Date.pp". Code for building toplevels (this code is not in Core) evaluates the strings to yield the pretty printers and register them with OCaml runtime.

val all : unit -> string list
all () returns all pretty printers that have been registered.
val register : string -> unit
register name adds name to the list of pretty printers.
module type S = sig .. end
Modules that provide a pretty printer will match S.
module Register: 
functor (M : sig
type t 
val module_name : string
val to_string : t -> string
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.
module Register_pp: 
functor (M : sig
include Pretty_printer.S
val module_name : string
end) -> S with type t := M.t
Register_pp is like Register, but allows a custom pp function rather than using to_string.