Util.Pp
Pretty-printing combinators that generate valid OCaml syntax for common types along with combinators for user-defined types
The type of pretty-printers to valid OCaml syntax. The bool
argument asks the printer to wrap its output inside parentheses if it produces a non-atomic expression.
val to_show : 'a t -> 'a -> string
to_show pp
converts a pretty-printer to a simple 'a -> string
function.
val of_show : ('a -> string) -> 'a t
of_show show
uses a simple 'a -> string
function as a pretty-printer. Unfortunately, it will wrap the resulting string with parentheses in more cases than strictly necessary.
cst0 name fmt
pretty-prints a constructor name
with no argument.
val cst1 : 'a t -> string -> bool -> Stdlib.Format.formatter -> 'a -> unit
cst1 pp name par v fmt
pretty-prints a constructor name
with one parameter, using pp
to pretty-print its argument v
, wrapping itself into parentheses when par
.
cst2 pp1 pp2 name par v1 v2 fmt
pretty-prints a constructor name
with two parameters, using pp
i to pretty-print its argument v
i, wrapping itself into parentheses when par
.
val cst3 :
'a t ->
'b t ->
'c t ->
string ->
bool ->
Stdlib.Format.formatter ->
'a ->
'b ->
'c ->
unit
cst3 pp1 pp2 pp3 name par v1 v2 v3 fmt
pretty-prints a constructor name
with three parameters, using pp
i to pretty-print its argument v
i, wrapping itself into parentheses when par
.
val pp_exn : exn t
Pretty-printer for exceptions reusing the standard Printexc
.to_string. The exception message will be wrapped conservatively (ie too often) in parentheses.
val pp_unit : unit t
Pretty-printer for type unit
val pp_bool : bool t
Pretty-printer for type bool
val pp_int : int t
Pretty-printer for type int
val pp_int64 : int64 t
Pretty-printer for type int64
val pp_float : float t
Pretty-printer for type float
val pp_char : char t
Pretty-printer for type char
val pp_string : string t
Pretty-printer for type string
val pp_bytes : bytes t
Pretty-printer for type bytes
pp_option pp
pretty-prints a value of type 'a option
using pp
to pretty-print values of type 'a
.
pp_result pp_ok pp_error
pretty-prints a value of type ('o, 'e) result
using pp_ok
to pretty-print values of type 'o
and pp_error
for values of type 'e
.
pp_pair pp_a pp_b
pretty-prints a value of type 'a * 'b
using pp_a
to pretty-print values of type 'a
and pp_b
for values of type 'b
.
pp_list pp
pretty-prints a list using pp
to pretty-print its elements.
pp_seq pp
pretty-prints a sequence using pp
to pretty-print its elements.
pp_array pp
pretty-prints an array using pp
to pretty-print its elements.
pp_field name pp v
build a pretty-printer for a record field of given name
using pp
to pretty-print its content value v
.