sig
  type ('variant, 'args) create =
      Args of ('args -> 'variant)
    | Const of 'variant
  type ('variant, 'args) t = {
    label : string;
    rep : 'args X.t;
    arity : int;
    index : int;
    ocaml_repr : int;
    tyid : 'args Typename.t;
    create : ('variant, 'args) Variant_and_record_intf.M.Tag_internal.create;
  }
end