Term.CstrA module for Algebraic datatype constructors.
type t = term_cstAn algebraic type constructor. Note that such constructors are used to build terms, and not types, e.g. consider the following: type 'a list = Nil | Cons of 'a * 'a t, then Nil and Cons are the constructors, while list would be a type constant of arity 1 used to name the type.
val print : Format.formatter -> t -> unitPrinter.
val hash : t -> intA hash function for adt constructors, should be suitable to create hashtables.
An equality function on adt constructors. Should be compatible with the hash function.
val void : tOnly constructor for the type unit.
Used in the type-checking of pattern matching. pattern_arity cstr ret ty_args should return the types of the expected arguments args such that apply_cstr cstr ty_args args has type ret.
Get the list of values bound to a list tag, returning the empty list if no value is bound.
Optionally bind an additional value to a list tag.
Bind a list of additional values to a list tag.