Module Fmt.Dump

Formatters for inspecting OCaml values.

Formatters of this module dump OCaml value with little control over the representation but with good default box structures and, whenever possible, using OCaml syntax.

Stdlib types

val signal : int t

signal formats an OCaml signal number as a C POSIX constant or "SIG(%d)" the signal number is unknown.

val uchar : Stdlib.Uchar.t t

uchar formats an OCaml Uchar.t value using only US-ASCII encoded characters according to the Unicode notational convention for code points.

val string : string t

string is pf ppf "%S".

val pair : 'a t -> 'b t -> ('a * 'b) t

pair pp_fst pp_snd formats an OCaml pair using pp_fst and pp_snd for the first and second projection.

val option : 'a t -> 'a option t

option pp_v formats an OCaml option using pp_v for the Some case. No parentheses are added.

val result : ok:'a t -> error:'b t -> ('a'b) Stdlib.result t

result ~ok ~error formats an OCaml result using ok for the Ok case value and error for the Error case value. No parentheses are added.

val list : 'a t -> 'a list t

list pp_v formats an OCaml list using pp_v for the list elements.

val array : 'a t -> 'a array t

array pp_v formats an OCaml array using pp_v for the array elements.

val seq : 'a t -> 'a Stdlib.Seq.t t

seq pp_v formats an OCaml sequence using pp_v for the sequence elements.

val hashtbl : 'a t -> 'b t -> ('a'b) Stdlib.Hashtbl.t t

hashtbl pp_k pp_v formats an unspecified representation of the bindings of a hash table using pp_k for the keys and pp_v for the values. If the hash table has multiple bindings for a given key, all bindings are formatted, with the most recent binding first.

val queue : 'a t -> 'a Stdlib.Queue.t t

queue pp_v formats an unspecified representation of an OCaml queue using pp_v to format its elements, in least recently added order.

val stack : 'a t -> 'a Stdlib.Stack.t t

stack pp_v formats an unspecified representation of an OCaml stack using pp_v to format its elements in top to bottom order.

Records

val field : ?label:string t -> string -> ('b -> 'a) -> 'a t -> 'b t

field ~label l prj pp_v pretty prints a named field using label (defaults to styled `Yellow string) for the label, and using prj pp_v for the field value.

val record : 'a t list -> 'a t

record fields pretty-prints a value using the concatenation of fields, separated by ";@,", framed in a vertical box and surrounded by braces.

Sequencing

These are akin to iter and iter_bindings but delimit the sequences with parens.

val iter : (('a -> unit) -> 'b -> unit) -> 'b t -> 'a t -> 'b t

iter iter pp_name pp_elt formats an unspecified representation of the iterations of iter over a value using pp_elt. The iteration is named by pp_name.

val iter_bindings : (('a -> 'b -> unit) -> 'c -> unit) -> 'c t -> 'a t -> 'b t -> 'c t

iter_bindings ~sep iter pp_name pp_k pp_v formats an unspecified representation of the iterations of iter over a value using pp_k and pp_v. The iteration is named by pp_name.