sig
  type _ t =
      T2 :
        ('a Std_internal.Typerep.t * 'b Std_internal.Typerep.t) -> ('a * 'b)
                                                                   Std_internal.Typerep.Tuple.t
    | T3 :
        ('a Std_internal.Typerep.t * 'b Std_internal.Typerep.t *
         'c Std_internal.Typerep.t) -> ('a * 'b * 'c)
                                       Std_internal.Typerep.Tuple.t
    | T4 :
        ('a Std_internal.Typerep.t * 'b Std_internal.Typerep.t *
         'c Std_internal.Typerep.t * 'd Std_internal.Typerep.t) -> ('a * 'b *
                                                                    'c * 'd)
                                                                   Std_internal.Typerep.Tuple.t
    | T5 :
        ('a Std_internal.Typerep.t * 'b Std_internal.Typerep.t *
         'c Std_internal.Typerep.t * 'd Std_internal.Typerep.t *
         'e Std_internal.Typerep.t) -> ('a * 'b * 'c * 'd * 'e)
                                       Std_internal.Typerep.Tuple.t
  val arity : 'a Std_internal.Typerep.Tuple.t -> int
  val typename_of_t : 'a Std_internal.Typerep.Tuple.t -> 'a Typename.t
end