An existential type used to gather all the tags constituing a variant
type. the 'variant
parameter 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
A similar existential constructor to _ tag
but this one holds a value whose type
is the arguments of the tag constructor. A value of type 'a value
is a pair of
(1) a value of variant type 'a
along with (2) some information about the
constructor within the type 'a
Returns the number of tags of this variant type definition.
Distinguish polymorphic variants and standard variants. Typically, polymorphic
variants tags starts with the `
character.
Example
polymorphic variant: type t = `A | `B
standard variant: type t = A | B