module Tag:sig
..end
The first parameter is the variant type, the second is the type of the tag parameters. Example:
type t = | A of (int * string) | B of string
this type has two constructors. for each of them we'll have a corresponding Tag.t
val tag_A : (t, (int * string)) Tag.t
val tag_B : (t, string) Tag.t
include Tag_internal
val label : ('a, 'b) t -> string
val arity : ('a, 'b) t -> int
val index : ('a, 'b) t -> int
val ocaml_repr : ('a, 'b) t -> int
val create : ('a, 'b) t -> ('a, 'b) create
val tyid : ('a, 'b) t -> 'b Typename.t
val traverse : ('a, 'b) t -> 'b X.t
val internal_use_only : 'a -> 'a