sig
  type ('variant, 'args) create =
      Args of ('args -> 'variant)
    | Const of 'variant
  type ('variant, 'args) t
  val label : ('a, 'b) Variant_and_record_intf.M.??.-> string
  val arity : ('a, 'b) Variant_and_record_intf.M.??.-> int
  val index : ('a, 'b) Variant_and_record_intf.M.??.-> int
  val ocaml_repr : ('a, 'b) Variant_and_record_intf.M.??.-> int
  val create :
    ('variant, 'args) Variant_and_record_intf.M.??.->
    ('variant, 'args) Variant_and_record_intf.M.??.create
  val tyid : ('a, 'args) Variant_and_record_intf.M.??.-> 'args Typename.t
  val traverse : ('a, 'args) Variant_and_record_intf.M.??.-> 'args X.t
  val internal_use_only :
    ('a, 'b) Variant_and_record_intf.M.Tag_internal.t ->
    ('a, 'b) Variant_and_record_intf.M.??.t
end