type _ tag =| Tag : ('variant, 'args) Tag.t -> 'variant tagAn existential type used to gather all the tags constituing a variant type. the
'variantparameter is the variant type, it is the same for all the constructors of that variant type. The type of the parameters might be different for each constructor and is thus existential
type _ value =| Value : ('variant, 'args) Tag.t * 'args -> 'variant valueA similar existential constructor to
_ tagbut this one holds a value whose type is the arguments of the tag constructor. A value of type'a valueis a pair of (1) a value of variant type'aalong with (2) some information about the constructor within the type'a
val typename_of_t : 'a t -> 'a Typerep_lib.Typename.tval length : 'a t -> intReturns the number of tags of this variant type definition.
val is_polymorphic : 'a t -> boolDistinguish polymorphic variants and standard variants. Typically, polymorphic variants tags starts with the
`character. Example polymorphic variant: type t =`A | `Bstandard variant: type t = A | B
val fold : 'a t -> init:'acc -> f:('acc -> 'a tag -> 'acc) -> 'accfolding along the tags of the variant type
val internal_use_only : 'a Variant_internal.t -> 'a t