Tag definitions
The type for tag definitions. The type 'a
is the type of the tag. The definition specifies a name for the tag, a pretty-printer for the type of the tag and a documentation string. See def
.
val def : ?doc:string -> string -> (Stdlib.Format.formatter -> 'a -> unit) -> 'a def
def ~doc name pp
is a tag definition. name
is the name of the tag, it doesn't need to be unique. pp
is a printer for the type of the tag. doc
is a documentation string describing the tag (defaults to "undocumented"
).
val name : 'a def -> string
name d
is d
's name.
val doc : 'a def -> string
doc d
is d
's documentation string.
val printer : 'a def -> Stdlib.Format.formatter -> 'a -> unit
printer d
is d
's type pretty-printer.
val pp_def : Stdlib.Format.formatter -> 'a def -> unit
pp_def ppf d
prints an unspecified representation of d
on ppf
.
val list : unit -> def_e list
tag_list ()
is the list of currently existing tag definitions.
Tags
val pp : Stdlib.Format.formatter -> t -> unit
pp ppf t
prints an unspecified representation of t
on ppf
.
Tag sets
val empty : set
empty
is the empty set.
val is_empty : set -> bool
is_empty s
is true
iff s
is empty.
add d v s
is s
with the tag (V (d, v))
added. If there was a tag with definition d
in s
it is replaced.
get d s
is like find d s
but
- raises Invalid_argument
if there is no tag with definition
d
ins
.
fold f s acc
is the result of folding f
over the tags of s
starting with acc
.
val pp_set : Stdlib.Format.formatter -> set -> unit
pp_set ppf s
prints an unspecified representation of s on ppf
.