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 defdef ~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 -> stringname d is d's name.
val doc : 'a def -> stringdoc d is d's documentation string.
val printer : 'a def -> Stdlib.Format.formatter -> 'a -> unitprinter d is d's type pretty-printer.
val pp_def : Stdlib.Format.formatter -> 'a def -> unitpp_def ppf d prints an unspecified representation of d on ppf.
val list : unit -> def_e listtag_list () is the list of currently existing tag definitions.
Tags
val pp : Stdlib.Format.formatter -> t -> unitpp ppf t prints an unspecified representation of t on ppf.
Tag sets
val empty : setempty is the empty set.
val is_empty : set -> boolis_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 - din- s.
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 -> unitpp_set ppf s prints an unspecified representation of s on ppf.