Vladislav Zavialov pushed to branch wip/int-index/tuple-tyfam at Glasgow Haskell Compiler / GHC

Commits:

15 changed files:

Changes:

  • changelog.d/lib-add-tuple-tyfam-27179
    1
    +section: ghc-experimental
    
    2
    +synopsis: Define and export type families ``Tuple``, ``Constraints``, ``Tuple#``, ``Sum#`` (GHC Proposal `#475 <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0475-tuple-syntax.rst>`_ "Non-punning list and tuple syntax")
    
    3
    +issues: #27179
    
    4
    +mrs: !15898

  • libraries/ghc-experimental/src/Data/Sum/Experimental.hs
    1 1
     {-# LANGUAGE Trustworthy #-}
    
    2 2
     {-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedSums, NoListTuplePuns #-}
    
    3
    +{-# LANGUAGE ExplicitForAll, StandaloneKindSignatures, PolyKinds, DataKinds, TypeFamilyDependencies #-}
    
    3 4
     
    
    4 5
     {-
    
    5 6
     Module      :  Data.Sum.Experimental
    
    ... ... @@ -78,8 +79,81 @@ module Data.Sum.Experimental (
    78 79
       Sum61#,
    
    79 80
       Sum62#,
    
    80 81
       Sum63#,
    
    82
    +
    
    83
    +  -- * Type families
    
    84
    +  TupleArgKind#,
    
    85
    +  Sum#,
    
    81 86
     ) where
    
    82 87
     
    
    83 88
     import GHC.Internal.Types
    
    89
    +import GHC.TypeLits
    
    90
    +import Data.Tuple.Experimental (TupleArgKind#)
    
    84 91
     
    
    85 92
     default ()
    
    93
    +
    
    94
    +type Sum# :: forall (reps :: List RuntimeRep). TupleArgKind# reps -> TYPE (SumRep reps)
    
    95
    +type family Sum# ts where
    
    96
    +  Sum# () = TypeError (Text "GHC does not support empty unboxed sums. Consider Data.Void.Void instead.")
    
    97
    +  Sum# (a :: TYPE r) = TypeError (Text "GHC does not support unary unboxed sums. Consider Data.Tuple.Solo# instead.")
    
    98
    +  Sum# (a, b) = Sum2# a b
    
    99
    +  Sum# (a, b, c) = Sum3# a b c
    
    100
    +  Sum# (a, b, c, d) = Sum4# a b c d
    
    101
    +  Sum# (a, b, c, d, e) = Sum5# a b c d e
    
    102
    +  Sum# (a, b, c, d, e, f) = Sum6# a b c d e f
    
    103
    +  Sum# (a, b, c, d, e, f, g) = Sum7# a b c d e f g
    
    104
    +  Sum# (a, b, c, d, e, f, g, h) = Sum8# a b c d e f g h
    
    105
    +  Sum# (a, b, c, d, e, f, g, h, i) = Sum9# a b c d e f g h i
    
    106
    +  Sum# (a, b, c, d, e, f, g, h, i, j) = Sum10# a b c d e f g h i j
    
    107
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k) = Sum11# a b c d e f g h i j k
    
    108
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l) = Sum12# a b c d e f g h i j k l
    
    109
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m) = Sum13# a b c d e f g h i j k l m
    
    110
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n) = Sum14# a b c d e f g h i j k l m n
    
    111
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) = Sum15# a b c d e f g h i j k l m n o
    
    112
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) = Sum16# a b c d e f g h i j k l m n o p
    
    113
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) = Sum17# a b c d e f g h i j k l m n o p q
    
    114
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) = Sum18# a b c d e f g h i j k l m n o p q r
    
    115
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) = Sum19# a b c d e f g h i j k l m n o p q r s
    
    116
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) = Sum20# a b c d e f g h i j k l m n o p q r s t
    
    117
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) = Sum21# a b c d e f g h i j k l m n o p q r s t u
    
    118
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) = Sum22# a b c d e f g h i j k l m n o p q r s t u v
    
    119
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) = Sum23# a b c d e f g h i j k l m n o p q r s t u v w
    
    120
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) = Sum24# a b c d e f g h i j k l m n o p q r s t u v w x
    
    121
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) = Sum25# a b c d e f g h i j k l m n o p q r s t u v w x y
    
    122
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) = Sum26# a b c d e f g h i j k l m n o p q r s t u v w x y z
    
    123
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa) = Sum27# a b c d e f g h i j k l m n o p q r s t u v w x y z aa
    
    124
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab) = Sum28# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab
    
    125
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac) = Sum29# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac
    
    126
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad) = Sum30# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad
    
    127
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae) = Sum31# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae
    
    128
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af) = Sum32# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af
    
    129
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag) = Sum33# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag
    
    130
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah) = Sum34# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah
    
    131
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai) = Sum35# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai
    
    132
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj) = Sum36# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj
    
    133
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak) = Sum37# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak
    
    134
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al) = Sum38# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al
    
    135
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am) = Sum39# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am
    
    136
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an) = Sum40# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an
    
    137
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao) = Sum41# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao
    
    138
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap) = Sum42# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap
    
    139
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq) = Sum43# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq
    
    140
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar) = Sum44# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar
    
    141
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as) = Sum45# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as
    
    142
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at) = Sum46# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at
    
    143
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au) = Sum47# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au
    
    144
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av) = Sum48# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av
    
    145
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw) = Sum49# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw
    
    146
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax) = Sum50# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax
    
    147
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay) = Sum51# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay
    
    148
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az) = Sum52# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az
    
    149
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba) = Sum53# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba
    
    150
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb) = Sum54# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb
    
    151
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc) = Sum55# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc
    
    152
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd) = Sum56# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd
    
    153
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be) = Sum57# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be
    
    154
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf) = Sum58# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf
    
    155
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg) = Sum59# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg
    
    156
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh) = Sum60# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh
    
    157
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi) = Sum61# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi
    
    158
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj) = Sum62# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj
    
    159
    +  Sum# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk) = Sum63# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk

  • libraries/ghc-experimental/src/Data/Tuple/Experimental.hs
    1 1
     {-# LANGUAGE Trustworthy #-}
    
    2 2
     {-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples, NoListTuplePuns #-}
    
    3
    +{-# LANGUAGE ExplicitForAll, StandaloneKindSignatures, PolyKinds, DataKinds, TypeFamilyDependencies #-}
    
    3 4
     
    
    4 5
     {-
    
    5 6
     Module      :  Data.Tuple.Experimental
    
    ... ... @@ -156,10 +157,427 @@ module Data.Tuple.Experimental (
    156 157
       CTuple62,
    
    157 158
       CTuple63,
    
    158 159
       CTuple64,
    
    160
    +
    
    161
    +  -- * Type families
    
    162
    +  TupleArgKind,
    
    163
    +  Tuple,
    
    164
    +  ConstraintsArgKind,
    
    165
    +  Constraints,
    
    166
    +  TupleArgKind#,
    
    167
    +  Tuple#,
    
    159 168
     ) where
    
    160 169
     
    
    161 170
     import GHC.Internal.Tuple
    
    162 171
     import GHC.Internal.Types
    
    163 172
     import GHC.Internal.Classes
    
    173
    +import GHC.TypeLits
    
    164 174
     
    
    165 175
     default ()
    
    176
    +
    
    177
    +type TupleArgKind :: Nat -> Type
    
    178
    +type family TupleArgKind n = r | r -> n where
    
    179
    +  TupleArgKind 0 = Unit
    
    180
    +  TupleArgKind 1 = Type
    
    181
    +  TupleArgKind 2 = Tuple2 Type Type
    
    182
    +  TupleArgKind 3 = Tuple3 Type Type Type
    
    183
    +  TupleArgKind 4 = Tuple4 Type Type Type Type
    
    184
    +  TupleArgKind 5 = Tuple5 Type Type Type Type Type
    
    185
    +  TupleArgKind 6 = Tuple6 Type Type Type Type Type Type
    
    186
    +  TupleArgKind 7 = Tuple7 Type Type Type Type Type Type Type
    
    187
    +  TupleArgKind 8 = Tuple8 Type Type Type Type Type Type Type Type
    
    188
    +  TupleArgKind 9 = Tuple9 Type Type Type Type Type Type Type Type Type
    
    189
    +  TupleArgKind 10 = Tuple10 Type Type Type Type Type Type Type Type Type Type
    
    190
    +  TupleArgKind 11 = Tuple11 Type Type Type Type Type Type Type Type Type Type Type
    
    191
    +  TupleArgKind 12 = Tuple12 Type Type Type Type Type Type Type Type Type Type Type Type
    
    192
    +  TupleArgKind 13 = Tuple13 Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    193
    +  TupleArgKind 14 = Tuple14 Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    194
    +  TupleArgKind 15 = Tuple15 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    195
    +  TupleArgKind 16 = Tuple16 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    196
    +  TupleArgKind 17 = Tuple17 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    197
    +  TupleArgKind 18 = Tuple18 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    198
    +  TupleArgKind 19 = Tuple19 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    199
    +  TupleArgKind 20 = Tuple20 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    200
    +  TupleArgKind 21 = Tuple21 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    201
    +  TupleArgKind 22 = Tuple22 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    202
    +  TupleArgKind 23 = Tuple23 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    203
    +  TupleArgKind 24 = Tuple24 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    204
    +  TupleArgKind 25 = Tuple25 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    205
    +  TupleArgKind 26 = Tuple26 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    206
    +  TupleArgKind 27 = Tuple27 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    207
    +  TupleArgKind 28 = Tuple28 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    208
    +  TupleArgKind 29 = Tuple29 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    209
    +  TupleArgKind 30 = Tuple30 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    210
    +  TupleArgKind 31 = Tuple31 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    211
    +  TupleArgKind 32 = Tuple32 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    212
    +  TupleArgKind 33 = Tuple33 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    213
    +  TupleArgKind 34 = Tuple34 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    214
    +  TupleArgKind 35 = Tuple35 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    215
    +  TupleArgKind 36 = Tuple36 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    216
    +  TupleArgKind 37 = Tuple37 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    217
    +  TupleArgKind 38 = Tuple38 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    218
    +  TupleArgKind 39 = Tuple39 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    219
    +  TupleArgKind 40 = Tuple40 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    220
    +  TupleArgKind 41 = Tuple41 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    221
    +  TupleArgKind 42 = Tuple42 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    222
    +  TupleArgKind 43 = Tuple43 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    223
    +  TupleArgKind 44 = Tuple44 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    224
    +  TupleArgKind 45 = Tuple45 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    225
    +  TupleArgKind 46 = Tuple46 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    226
    +  TupleArgKind 47 = Tuple47 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    227
    +  TupleArgKind 48 = Tuple48 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    228
    +  TupleArgKind 49 = Tuple49 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    229
    +  TupleArgKind 50 = Tuple50 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    230
    +  TupleArgKind 51 = Tuple51 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    231
    +  TupleArgKind 52 = Tuple52 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    232
    +  TupleArgKind 53 = Tuple53 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    233
    +  TupleArgKind 54 = Tuple54 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    234
    +  TupleArgKind 55 = Tuple55 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    235
    +  TupleArgKind 56 = Tuple56 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    236
    +  TupleArgKind 57 = Tuple57 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    237
    +  TupleArgKind 58 = Tuple58 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    238
    +  TupleArgKind 59 = Tuple59 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    239
    +  TupleArgKind 60 = Tuple60 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    240
    +  TupleArgKind 61 = Tuple61 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    241
    +  TupleArgKind 62 = Tuple62 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    242
    +  TupleArgKind 63 = Tuple63 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    243
    +  TupleArgKind 64 = Tuple64 Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type Type
    
    244
    +
    
    245
    +type Tuple :: forall (n :: Nat). TupleArgKind n -> Type
    
    246
    +type family Tuple ts where
    
    247
    +  Tuple () = Unit
    
    248
    +  Tuple (a :: Type) = a
    
    249
    +  Tuple (a, b) = Tuple2 a b
    
    250
    +  Tuple (a, b, c) = Tuple3 a b c
    
    251
    +  Tuple (a, b, c, d) = Tuple4 a b c d
    
    252
    +  Tuple (a, b, c, d, e) = Tuple5 a b c d e
    
    253
    +  Tuple (a, b, c, d, e, f) = Tuple6 a b c d e f
    
    254
    +  Tuple (a, b, c, d, e, f, g) = Tuple7 a b c d e f g
    
    255
    +  Tuple (a, b, c, d, e, f, g, h) = Tuple8 a b c d e f g h
    
    256
    +  Tuple (a, b, c, d, e, f, g, h, i) = Tuple9 a b c d e f g h i
    
    257
    +  Tuple (a, b, c, d, e, f, g, h, i, j) = Tuple10 a b c d e f g h i j
    
    258
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k) = Tuple11 a b c d e f g h i j k
    
    259
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l) = Tuple12 a b c d e f g h i j k l
    
    260
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m) = Tuple13 a b c d e f g h i j k l m
    
    261
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n) = Tuple14 a b c d e f g h i j k l m n
    
    262
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) = Tuple15 a b c d e f g h i j k l m n o
    
    263
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) = Tuple16 a b c d e f g h i j k l m n o p
    
    264
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) = Tuple17 a b c d e f g h i j k l m n o p q
    
    265
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) = Tuple18 a b c d e f g h i j k l m n o p q r
    
    266
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) = Tuple19 a b c d e f g h i j k l m n o p q r s
    
    267
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) = Tuple20 a b c d e f g h i j k l m n o p q r s t
    
    268
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) = Tuple21 a b c d e f g h i j k l m n o p q r s t u
    
    269
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) = Tuple22 a b c d e f g h i j k l m n o p q r s t u v
    
    270
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) = Tuple23 a b c d e f g h i j k l m n o p q r s t u v w
    
    271
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) = Tuple24 a b c d e f g h i j k l m n o p q r s t u v w x
    
    272
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) = Tuple25 a b c d e f g h i j k l m n o p q r s t u v w x y
    
    273
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) = Tuple26 a b c d e f g h i j k l m n o p q r s t u v w x y z
    
    274
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa) = Tuple27 a b c d e f g h i j k l m n o p q r s t u v w x y z aa
    
    275
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab) = Tuple28 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab
    
    276
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac) = Tuple29 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac
    
    277
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad) = Tuple30 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad
    
    278
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae) = Tuple31 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae
    
    279
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af) = Tuple32 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af
    
    280
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag) = Tuple33 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag
    
    281
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah) = Tuple34 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah
    
    282
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai) = Tuple35 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai
    
    283
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj) = Tuple36 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj
    
    284
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak) = Tuple37 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak
    
    285
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al) = Tuple38 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al
    
    286
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am) = Tuple39 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am
    
    287
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an) = Tuple40 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an
    
    288
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao) = Tuple41 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao
    
    289
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap) = Tuple42 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap
    
    290
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq) = Tuple43 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq
    
    291
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar) = Tuple44 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar
    
    292
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as) = Tuple45 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as
    
    293
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at) = Tuple46 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at
    
    294
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au) = Tuple47 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au
    
    295
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av) = Tuple48 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av
    
    296
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw) = Tuple49 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw
    
    297
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax) = Tuple50 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax
    
    298
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay) = Tuple51 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay
    
    299
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az) = Tuple52 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az
    
    300
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba) = Tuple53 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba
    
    301
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb) = Tuple54 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb
    
    302
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc) = Tuple55 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc
    
    303
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd) = Tuple56 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd
    
    304
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be) = Tuple57 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be
    
    305
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf) = Tuple58 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf
    
    306
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg) = Tuple59 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg
    
    307
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh) = Tuple60 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh
    
    308
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi) = Tuple61 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi
    
    309
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj) = Tuple62 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj
    
    310
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk) = Tuple63 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk
    
    311
    +  Tuple (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl) = Tuple64 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl
    
    312
    +
    
    313
    +type ConstraintsArgKind :: Nat -> Type
    
    314
    +type family ConstraintsArgKind n = r | r -> n where
    
    315
    +  ConstraintsArgKind 0 = Unit
    
    316
    +  ConstraintsArgKind 1 = Constraint
    
    317
    +  ConstraintsArgKind 2 = Tuple2 Constraint Constraint
    
    318
    +  ConstraintsArgKind 3 = Tuple3 Constraint Constraint Constraint
    
    319
    +  ConstraintsArgKind 4 = Tuple4 Constraint Constraint Constraint Constraint
    
    320
    +  ConstraintsArgKind 5 = Tuple5 Constraint Constraint Constraint Constraint Constraint
    
    321
    +  ConstraintsArgKind 6 = Tuple6 Constraint Constraint Constraint Constraint Constraint Constraint
    
    322
    +  ConstraintsArgKind 7 = Tuple7 Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    323
    +  ConstraintsArgKind 8 = Tuple8 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    324
    +  ConstraintsArgKind 9 = Tuple9 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    325
    +  ConstraintsArgKind 10 = Tuple10 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    326
    +  ConstraintsArgKind 11 = Tuple11 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    327
    +  ConstraintsArgKind 12 = Tuple12 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    328
    +  ConstraintsArgKind 13 = Tuple13 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    329
    +  ConstraintsArgKind 14 = Tuple14 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    330
    +  ConstraintsArgKind 15 = Tuple15 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    331
    +  ConstraintsArgKind 16 = Tuple16 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    332
    +  ConstraintsArgKind 17 = Tuple17 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    333
    +  ConstraintsArgKind 18 = Tuple18 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    334
    +  ConstraintsArgKind 19 = Tuple19 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    335
    +  ConstraintsArgKind 20 = Tuple20 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    336
    +  ConstraintsArgKind 21 = Tuple21 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    337
    +  ConstraintsArgKind 22 = Tuple22 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    338
    +  ConstraintsArgKind 23 = Tuple23 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    339
    +  ConstraintsArgKind 24 = Tuple24 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    340
    +  ConstraintsArgKind 25 = Tuple25 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    341
    +  ConstraintsArgKind 26 = Tuple26 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    342
    +  ConstraintsArgKind 27 = Tuple27 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    343
    +  ConstraintsArgKind 28 = Tuple28 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    344
    +  ConstraintsArgKind 29 = Tuple29 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    345
    +  ConstraintsArgKind 30 = Tuple30 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    346
    +  ConstraintsArgKind 31 = Tuple31 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    347
    +  ConstraintsArgKind 32 = Tuple32 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    348
    +  ConstraintsArgKind 33 = Tuple33 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    349
    +  ConstraintsArgKind 34 = Tuple34 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    350
    +  ConstraintsArgKind 35 = Tuple35 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    351
    +  ConstraintsArgKind 36 = Tuple36 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    352
    +  ConstraintsArgKind 37 = Tuple37 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    353
    +  ConstraintsArgKind 38 = Tuple38 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    354
    +  ConstraintsArgKind 39 = Tuple39 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    355
    +  ConstraintsArgKind 40 = Tuple40 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    356
    +  ConstraintsArgKind 41 = Tuple41 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    357
    +  ConstraintsArgKind 42 = Tuple42 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    358
    +  ConstraintsArgKind 43 = Tuple43 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    359
    +  ConstraintsArgKind 44 = Tuple44 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    360
    +  ConstraintsArgKind 45 = Tuple45 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    361
    +  ConstraintsArgKind 46 = Tuple46 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    362
    +  ConstraintsArgKind 47 = Tuple47 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    363
    +  ConstraintsArgKind 48 = Tuple48 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    364
    +  ConstraintsArgKind 49 = Tuple49 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    365
    +  ConstraintsArgKind 50 = Tuple50 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    366
    +  ConstraintsArgKind 51 = Tuple51 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    367
    +  ConstraintsArgKind 52 = Tuple52 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    368
    +  ConstraintsArgKind 53 = Tuple53 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    369
    +  ConstraintsArgKind 54 = Tuple54 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    370
    +  ConstraintsArgKind 55 = Tuple55 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    371
    +  ConstraintsArgKind 56 = Tuple56 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    372
    +  ConstraintsArgKind 57 = Tuple57 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    373
    +  ConstraintsArgKind 58 = Tuple58 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    374
    +  ConstraintsArgKind 59 = Tuple59 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    375
    +  ConstraintsArgKind 60 = Tuple60 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    376
    +  ConstraintsArgKind 61 = Tuple61 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    377
    +  ConstraintsArgKind 62 = Tuple62 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    378
    +  ConstraintsArgKind 63 = Tuple63 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    379
    +  ConstraintsArgKind 64 = Tuple64 Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint Constraint
    
    380
    +
    
    381
    +type Constraints :: forall (n :: Nat). ConstraintsArgKind n -> Constraint
    
    382
    +type family Constraints ts where
    
    383
    +  Constraints () = CUnit
    
    384
    +  Constraints (a :: Constraint) = a
    
    385
    +  Constraints (a, b) = CTuple2 a b
    
    386
    +  Constraints (a, b, c) = CTuple3 a b c
    
    387
    +  Constraints (a, b, c, d) = CTuple4 a b c d
    
    388
    +  Constraints (a, b, c, d, e) = CTuple5 a b c d e
    
    389
    +  Constraints (a, b, c, d, e, f) = CTuple6 a b c d e f
    
    390
    +  Constraints (a, b, c, d, e, f, g) = CTuple7 a b c d e f g
    
    391
    +  Constraints (a, b, c, d, e, f, g, h) = CTuple8 a b c d e f g h
    
    392
    +  Constraints (a, b, c, d, e, f, g, h, i) = CTuple9 a b c d e f g h i
    
    393
    +  Constraints (a, b, c, d, e, f, g, h, i, j) = CTuple10 a b c d e f g h i j
    
    394
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k) = CTuple11 a b c d e f g h i j k
    
    395
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l) = CTuple12 a b c d e f g h i j k l
    
    396
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m) = CTuple13 a b c d e f g h i j k l m
    
    397
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n) = CTuple14 a b c d e f g h i j k l m n
    
    398
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) = CTuple15 a b c d e f g h i j k l m n o
    
    399
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) = CTuple16 a b c d e f g h i j k l m n o p
    
    400
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) = CTuple17 a b c d e f g h i j k l m n o p q
    
    401
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) = CTuple18 a b c d e f g h i j k l m n o p q r
    
    402
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) = CTuple19 a b c d e f g h i j k l m n o p q r s
    
    403
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) = CTuple20 a b c d e f g h i j k l m n o p q r s t
    
    404
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) = CTuple21 a b c d e f g h i j k l m n o p q r s t u
    
    405
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) = CTuple22 a b c d e f g h i j k l m n o p q r s t u v
    
    406
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) = CTuple23 a b c d e f g h i j k l m n o p q r s t u v w
    
    407
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) = CTuple24 a b c d e f g h i j k l m n o p q r s t u v w x
    
    408
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) = CTuple25 a b c d e f g h i j k l m n o p q r s t u v w x y
    
    409
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) = CTuple26 a b c d e f g h i j k l m n o p q r s t u v w x y z
    
    410
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa) = CTuple27 a b c d e f g h i j k l m n o p q r s t u v w x y z aa
    
    411
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab) = CTuple28 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab
    
    412
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac) = CTuple29 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac
    
    413
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad) = CTuple30 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad
    
    414
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae) = CTuple31 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae
    
    415
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af) = CTuple32 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af
    
    416
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag) = CTuple33 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag
    
    417
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah) = CTuple34 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah
    
    418
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai) = CTuple35 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai
    
    419
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj) = CTuple36 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj
    
    420
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak) = CTuple37 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak
    
    421
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al) = CTuple38 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al
    
    422
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am) = CTuple39 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am
    
    423
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an) = CTuple40 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an
    
    424
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao) = CTuple41 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao
    
    425
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap) = CTuple42 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap
    
    426
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq) = CTuple43 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq
    
    427
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar) = CTuple44 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar
    
    428
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as) = CTuple45 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as
    
    429
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at) = CTuple46 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at
    
    430
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au) = CTuple47 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au
    
    431
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av) = CTuple48 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av
    
    432
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw) = CTuple49 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw
    
    433
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax) = CTuple50 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax
    
    434
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay) = CTuple51 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay
    
    435
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az) = CTuple52 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az
    
    436
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba) = CTuple53 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba
    
    437
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb) = CTuple54 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb
    
    438
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc) = CTuple55 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc
    
    439
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd) = CTuple56 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd
    
    440
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be) = CTuple57 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be
    
    441
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf) = CTuple58 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf
    
    442
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg) = CTuple59 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg
    
    443
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh) = CTuple60 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh
    
    444
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi) = CTuple61 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi
    
    445
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj) = CTuple62 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj
    
    446
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk) = CTuple63 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk
    
    447
    +  Constraints (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl) = CTuple64 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl
    
    448
    +
    
    449
    +type TupleArgKind# :: List RuntimeRep -> Type
    
    450
    +type family TupleArgKind# reps where
    
    451
    +  TupleArgKind# [] = Unit
    
    452
    +  TupleArgKind# [r1] = TYPE r1
    
    453
    +  TupleArgKind# [a, b] = Tuple2 (TYPE a) (TYPE b)
    
    454
    +  TupleArgKind# [a, b, c] = Tuple3 (TYPE a) (TYPE b) (TYPE c)
    
    455
    +  TupleArgKind# [a, b, c, d] = Tuple4 (TYPE a) (TYPE b) (TYPE c) (TYPE d)
    
    456
    +  TupleArgKind# [a, b, c, d, e] = Tuple5 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e)
    
    457
    +  TupleArgKind# [a, b, c, d, e, f] = Tuple6 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f)
    
    458
    +  TupleArgKind# [a, b, c, d, e, f, g] = Tuple7 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g)
    
    459
    +  TupleArgKind# [a, b, c, d, e, f, g, h] = Tuple8 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h)
    
    460
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i] = Tuple9 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i)
    
    461
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j] = Tuple10 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j)
    
    462
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k] = Tuple11 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k)
    
    463
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l] = Tuple12 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l)
    
    464
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m] = Tuple13 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m)
    
    465
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n] = Tuple14 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n)
    
    466
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o] = Tuple15 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o)
    
    467
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p] = Tuple16 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p)
    
    468
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q] = Tuple17 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q)
    
    469
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r] = Tuple18 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r)
    
    470
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s] = Tuple19 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s)
    
    471
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t] = Tuple20 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t)
    
    472
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u] = Tuple21 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u)
    
    473
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v] = Tuple22 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v)
    
    474
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w] = Tuple23 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w)
    
    475
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x] = Tuple24 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x)
    
    476
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y] = Tuple25 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y)
    
    477
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z] = Tuple26 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z)
    
    478
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa] = Tuple27 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa)
    
    479
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab] = Tuple28 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab)
    
    480
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac] = Tuple29 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac)
    
    481
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad] = Tuple30 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad)
    
    482
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae] = Tuple31 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae)
    
    483
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af] = Tuple32 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af)
    
    484
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag] = Tuple33 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag)
    
    485
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah] = Tuple34 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah)
    
    486
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai] = Tuple35 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai)
    
    487
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj] = Tuple36 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj)
    
    488
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak] = Tuple37 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak)
    
    489
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al] = Tuple38 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al)
    
    490
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am] = Tuple39 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am)
    
    491
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an] = Tuple40 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an)
    
    492
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao] = Tuple41 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao)
    
    493
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap] = Tuple42 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap)
    
    494
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq] = Tuple43 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq)
    
    495
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar] = Tuple44 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar)
    
    496
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as] = Tuple45 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as)
    
    497
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at] = Tuple46 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at)
    
    498
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au] = Tuple47 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au)
    
    499
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av] = Tuple48 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av)
    
    500
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw] = Tuple49 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw)
    
    501
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax] = Tuple50 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax)
    
    502
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay] = Tuple51 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay)
    
    503
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az] = Tuple52 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az)
    
    504
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba] = Tuple53 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba)
    
    505
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb] = Tuple54 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb)
    
    506
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc] = Tuple55 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc)
    
    507
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd] = Tuple56 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc) (TYPE bd)
    
    508
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be] = Tuple57 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc) (TYPE bd) (TYPE be)
    
    509
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf] = Tuple58 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc) (TYPE bd) (TYPE be) (TYPE bf)
    
    510
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg] = Tuple59 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc) (TYPE bd) (TYPE be) (TYPE bf) (TYPE bg)
    
    511
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh] = Tuple60 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc) (TYPE bd) (TYPE be) (TYPE bf) (TYPE bg) (TYPE bh)
    
    512
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi] = Tuple61 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc) (TYPE bd) (TYPE be) (TYPE bf) (TYPE bg) (TYPE bh) (TYPE bi)
    
    513
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj] = Tuple62 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc) (TYPE bd) (TYPE be) (TYPE bf) (TYPE bg) (TYPE bh) (TYPE bi) (TYPE bj)
    
    514
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk] = Tuple63 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc) (TYPE bd) (TYPE be) (TYPE bf) (TYPE bg) (TYPE bh) (TYPE bi) (TYPE bj) (TYPE bk)
    
    515
    +  TupleArgKind# [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl] = Tuple64 (TYPE a) (TYPE b) (TYPE c) (TYPE d) (TYPE e) (TYPE f) (TYPE g) (TYPE h) (TYPE i) (TYPE j) (TYPE k) (TYPE l) (TYPE m) (TYPE n) (TYPE o) (TYPE p) (TYPE q) (TYPE r) (TYPE s) (TYPE t) (TYPE u) (TYPE v) (TYPE w) (TYPE x) (TYPE y) (TYPE z) (TYPE aa) (TYPE ab) (TYPE ac) (TYPE ad) (TYPE ae) (TYPE af) (TYPE ag) (TYPE ah) (TYPE ai) (TYPE aj) (TYPE ak) (TYPE al) (TYPE am) (TYPE an) (TYPE ao) (TYPE ap) (TYPE aq) (TYPE ar) (TYPE as) (TYPE at) (TYPE au) (TYPE av) (TYPE aw) (TYPE ax) (TYPE ay) (TYPE az) (TYPE ba) (TYPE bb) (TYPE bc) (TYPE bd) (TYPE be) (TYPE bf) (TYPE bg) (TYPE bh) (TYPE bi) (TYPE bj) (TYPE bk) (TYPE bl)
    
    516
    +
    
    517
    +type Tuple# :: forall (reps :: List RuntimeRep). TupleArgKind# reps -> TYPE (TupleRep reps)
    
    518
    +type family Tuple# ts where
    
    519
    +  Tuple# () = Unit#
    
    520
    +  Tuple# (a :: TYPE r) = TypeError (Text "Tuple# does not work for 1-tuples; use Solo#.")
    
    521
    +  Tuple# (a, b) = Tuple2# a b
    
    522
    +  Tuple# (a, b, c) = Tuple3# a b c
    
    523
    +  Tuple# (a, b, c, d) = Tuple4# a b c d
    
    524
    +  Tuple# (a, b, c, d, e) = Tuple5# a b c d e
    
    525
    +  Tuple# (a, b, c, d, e, f) = Tuple6# a b c d e f
    
    526
    +  Tuple# (a, b, c, d, e, f, g) = Tuple7# a b c d e f g
    
    527
    +  Tuple# (a, b, c, d, e, f, g, h) = Tuple8# a b c d e f g h
    
    528
    +  Tuple# (a, b, c, d, e, f, g, h, i) = Tuple9# a b c d e f g h i
    
    529
    +  Tuple# (a, b, c, d, e, f, g, h, i, j) = Tuple10# a b c d e f g h i j
    
    530
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k) = Tuple11# a b c d e f g h i j k
    
    531
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l) = Tuple12# a b c d e f g h i j k l
    
    532
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m) = Tuple13# a b c d e f g h i j k l m
    
    533
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n) = Tuple14# a b c d e f g h i j k l m n
    
    534
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) = Tuple15# a b c d e f g h i j k l m n o
    
    535
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) = Tuple16# a b c d e f g h i j k l m n o p
    
    536
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) = Tuple17# a b c d e f g h i j k l m n o p q
    
    537
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) = Tuple18# a b c d e f g h i j k l m n o p q r
    
    538
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) = Tuple19# a b c d e f g h i j k l m n o p q r s
    
    539
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) = Tuple20# a b c d e f g h i j k l m n o p q r s t
    
    540
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) = Tuple21# a b c d e f g h i j k l m n o p q r s t u
    
    541
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) = Tuple22# a b c d e f g h i j k l m n o p q r s t u v
    
    542
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) = Tuple23# a b c d e f g h i j k l m n o p q r s t u v w
    
    543
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) = Tuple24# a b c d e f g h i j k l m n o p q r s t u v w x
    
    544
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) = Tuple25# a b c d e f g h i j k l m n o p q r s t u v w x y
    
    545
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) = Tuple26# a b c d e f g h i j k l m n o p q r s t u v w x y z
    
    546
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa) = Tuple27# a b c d e f g h i j k l m n o p q r s t u v w x y z aa
    
    547
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab) = Tuple28# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab
    
    548
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac) = Tuple29# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac
    
    549
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad) = Tuple30# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad
    
    550
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae) = Tuple31# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae
    
    551
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af) = Tuple32# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af
    
    552
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag) = Tuple33# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag
    
    553
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah) = Tuple34# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah
    
    554
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai) = Tuple35# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai
    
    555
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj) = Tuple36# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj
    
    556
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak) = Tuple37# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak
    
    557
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al) = Tuple38# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al
    
    558
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am) = Tuple39# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am
    
    559
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an) = Tuple40# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an
    
    560
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao) = Tuple41# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao
    
    561
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap) = Tuple42# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap
    
    562
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq) = Tuple43# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq
    
    563
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar) = Tuple44# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar
    
    564
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as) = Tuple45# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as
    
    565
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at) = Tuple46# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at
    
    566
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au) = Tuple47# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au
    
    567
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av) = Tuple48# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av
    
    568
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw) = Tuple49# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw
    
    569
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax) = Tuple50# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax
    
    570
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay) = Tuple51# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay
    
    571
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az) = Tuple52# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az
    
    572
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba) = Tuple53# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba
    
    573
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb) = Tuple54# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb
    
    574
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc) = Tuple55# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc
    
    575
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd) = Tuple56# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd
    
    576
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be) = Tuple57# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be
    
    577
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf) = Tuple58# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf
    
    578
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg) = Tuple59# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg
    
    579
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh) = Tuple60# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh
    
    580
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi) = Tuple61# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi
    
    581
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj) = Tuple62# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj
    
    582
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk) = Tuple63# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk
    
    583
    +  Tuple# (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl) = Tuple64# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl

  • testsuite/tests/ghci/scripts/ListTuplePunsPprNoAbbrevTuple.stdout
    1
    -type Tuple :: forall (n :: GHC.TypeNats.Nat).
    
    2
    -              Data.Tuple.Experimental.TupleArgKind (*) n -> *
    
    3
    -type family Tuple ts = r | r -> n ts where
    
    1
    +type Tuple :: forall (n :: GHC.Internal.TypeNats.Nat).
    
    2
    +              Data.Tuple.Experimental.TupleArgKind n -> *
    
    3
    +type family Tuple ts where
    
    4 4
         Tuple () = Unit
    
    5
    +    Tuple a = a
    
    5 6
         Tuple (a, b) = Tuple2 a b
    
    6 7
         Tuple (a, b, c) = Tuple3 a b c
    
    7 8
         Tuple (a, b, c, d) = Tuple4 a b c d
    

  • testsuite/tests/ghci/scripts/all.T
    ... ... @@ -382,7 +382,7 @@ test('T16468', normal, ghci_script, ['T16468.script'])
    382 382
     test('T23686', normal, ghci_script, ['T23686.script'])
    
    383 383
     test('T13869', extra_files(['T13869a.hs', 'T13869b.hs']), ghci_script, ['T13869.script'])
    
    384 384
     test('ListTuplePunsPpr', normal, ghci_script, ['ListTuplePunsPpr.script'])
    
    385
    -test('ListTuplePunsPprNoAbbrevTuple', [expect_broken(23135), limit_stdout_lines(13)], ghci_script, ['ListTuplePunsPprNoAbbrevTuple.script'])
    
    385
    +test('ListTuplePunsPprNoAbbrevTuple', [limit_stdout_lines(14)], ghci_script, ['ListTuplePunsPprNoAbbrevTuple.script'])
    
    386 386
     test('T24459', normal, ghci_script, ['T24459.script'])
    
    387 387
     test('T24632', normal, ghci_script, ['T24632.script'])
    
    388 388
     
    

  • testsuite/tests/interface-stability/ghc-experimental-exports.stdout The diff for this file was not included because it is too large.
  • testsuite/tests/interface-stability/ghc-experimental-exports.stdout-mingw32 The diff for this file was not included because it is too large.
  • testsuite/tests/parser/should_compile/ListTuplePunsSuccess1.hs
    ... ... @@ -3,9 +3,9 @@
    3 3
     module ListTuplePunsSuccess1 where
    
    4 4
     
    
    5 5
     import Data.Kind (Type)
    
    6
    --- import Data.Tuple.Experimental (Tuple, Tuple#)
    
    7
    -import GHC.Tuple (Unit, Tuple2)
    
    8
    -import GHC.Types (List)
    
    6
    +import Data.List (List)
    
    7
    +import Data.Tuple.Experimental (Unit, Tuple2, Tuple, Constraints, Tuple#)
    
    8
    +import GHC.Exts (TYPE, RuntimeRep(IntRep))
    
    9 9
     
    
    10 10
     type family F (a :: Tuple2 Type Type) :: Type where
    
    11 11
       F (a, _) = a
    
    ... ... @@ -34,10 +34,14 @@ type Z1 = H [Int, Double]
    34 34
     z1 :: Z1
    
    35 35
     z1 = (5 :: Int)
    
    36 36
     
    
    37
    --- swap :: Tuple (a, b) -> Tuple (b, a)
    
    38
    --- swap (x, y) = (y, x)
    
    37
    +swap :: Tuple (a, b) -> Tuple (b, a)
    
    38
    +swap (x, y) = (y, x)
    
    39 39
     
    
    40
    --- unboxedSoloFam :: Int
    
    41
    --- unboxedSoloFam =
    
    42
    ---   case (# 1 #) :: Tuple# Int of
    
    43
    ---     _ -> 0
    40
    +swap_mono :: Tuple (Int, Bool) -> Tuple (Bool, Int)
    
    41
    +swap_mono (x, y) = (y, x)
    
    42
    +
    
    43
    +swap_inc :: Constraints (Num a, Num b) => Tuple (a, b) -> Tuple (b, a)
    
    44
    +swap_inc (x, y) = (y + 1, x + 1)
    
    45
    +
    
    46
    +swap# :: forall (a :: TYPE IntRep) (b :: Type). Tuple# (a, b) -> Tuple# (b, a)
    
    47
    +swap# (# x, y #) = (# y, x #)

  • testsuite/tests/parser/should_compile/all.T
    ... ... @@ -198,8 +198,8 @@ test('T20718b', normal, compile, ['-dsuppress-uniques -ddump-parsed-ast -dkeep-
    198 198
     test('T21589', normal, compile, [''])
    
    199 199
     test('T19372consym', normal, compile, [''])
    
    200 200
     test('ListTuplePunsSuccess1', extra_files(['ListTuplePunsSuccess1.hs']), ghci_script, ['ListTuplePunsSuccess1.script'])
    
    201
    -test('ListTuplePunsFamiliesCompat', expect_broken(23135), compile, [''])
    
    202
    -test('ListTuplePunsFamilies', [expect_broken(23135), extra_files(['ListTuplePunsFamilies.hs'])], ghci_script, ['ListTuplePunsFamilies.script'])
    
    201
    +test('ListTuplePunsFamiliesCompat', normal, compile, [''])
    
    202
    +test('ListTuplePunsFamilies', [extra_files(['ListTuplePunsFamilies.hs'])], ghci_script, ['ListTuplePunsFamilies.script'])
    
    203 203
     
    
    204 204
     
    
    205 205
     test('T22155', normal, compile, ['-dsuppress-uniques -ddump-simpl -dsuppress-all -dno-typeable-binds'])
    

  • testsuite/tests/parser/should_fail/ListTuplePunsFail6.hs
    1
    +{-# language DataKinds, MagicHash, UnboxedTuples #-}
    
    2
    +
    
    3
    +module ListTuplePunsFail6 where
    
    4
    +
    
    5
    +import Data.Tuple.Experimental (Tuple#)
    
    6
    +
    
    7
    +unboxedSoloFam :: Int
    
    8
    +unboxedSoloFam =
    
    9
    +  case (# 1 #) :: Tuple# Int of
    
    10
    +    _ -> 0

  • testsuite/tests/parser/should_fail/ListTuplePunsFail6.stderr
    1
    +ListTuplePunsFail6.hs:9:8: error: [GHC-64725]
    
    2
    +    • Tuple# does not work for 1-tuples; use Solo#.
    
    3
    +    • In the expression: (# 1 #) :: Tuple# Int
    
    4
    +      In the expression: case (# 1 #) :: Tuple# Int of _ -> 0
    
    5
    +      In an equation for ‘unboxedSoloFam’:
    
    6
    +          unboxedSoloFam = case (# 1 #) :: Tuple# Int of _ -> 0
    
    7
    +

  • testsuite/tests/parser/should_fail/all.T
    ... ... @@ -232,6 +232,7 @@ test('ListTuplePunsFail2', extra_files(['ListTuplePunsFail2.hs']), ghci_script,
    232 232
     test('ListTuplePunsFail3', extra_files(['ListTuplePunsFail3.hs']), ghci_script, ['ListTuplePunsFail3.script'])
    
    233 233
     test('ListTuplePunsFail4', extra_files(['ListTuplePunsFail4.hs']), ghci_script, ['ListTuplePunsFail4.script'])
    
    234 234
     test('ListTuplePunsFail5', extra_files(['ListTuplePunsFail5.hs']), ghci_script, ['ListTuplePunsFail5.script'])
    
    235
    +test('ListTuplePunsFail6', normal, compile_fail, [''])
    
    235 236
     test('T17879a', normal, compile_fail, [''])
    
    236 237
     test('T17879b', normal, compile_fail, [''])
    
    237 238
     test('Or1', normal, compile_fail, [''])
    

  • testsuite/tests/parser/should_run/ListTuplePunsConstraints.hs
    ... ... @@ -2,17 +2,16 @@
    2 2
     
    
    3 3
     module ListTuplePunsConstraints where
    
    4 4
     
    
    5
    --- import Data.Tuple.Experimental (Constraints)
    
    6
    -import GHC.Classes (CTuple2)
    
    5
    +import Data.Tuple.Experimental (CTuple2, Constraints)
    
    7 6
     
    
    8
    --- type C1 m = Constraints (Monad m, Monad m)
    
    7
    +type C1 m = Constraints (Monad m, Monad m)
    
    9 8
     type C2 m = CTuple2 (Monad m) (Monad m)
    
    10 9
     
    
    11 10
     f ::
    
    12 11
       Monad m =>
    
    13
    -  -- C1 m =>
    
    12
    +  C1 m =>
    
    14 13
       C2 m =>
    
    15 14
       CTuple2 (Monad m) (Monad m) =>
    
    16
    -  -- (Monad m, Constraints (Monad m, Monad m)) =>
    
    15
    +  (Monad m, Constraints (Monad m, Monad m)) =>
    
    17 16
       m Int
    
    18 17
     f = pure 5

  • testsuite/tests/typecheck/should_compile/T23135.hs
    1
    +{-# LANGUAGE DataKinds, TypeFamilies, TypeFamilyDependencies #-}
    
    2
    +module T23135 where
    
    3
    +
    
    4
    +import Data.Kind
    
    5
    +import GHC.TypeLits
    
    6
    +
    
    7
    +data Tuple2 x y = MkTuple2 x y
    
    8
    +
    
    9
    +type TupleArgKind :: Nat -> Type
    
    10
    +type family TupleArgKind n = r | r -> n where
    
    11
    +  TupleArgKind 2 = Tuple2 Type Type
    
    12
    +
    
    13
    +type Tuple :: forall (n :: Nat). TupleArgKind n -> Type
    
    14
    +type family Tuple ts = r | r -> ts where
    
    15
    +  Tuple (MkTuple2 a b) = Tuple2 a b
    
    16
    +
    
    17
    +-- works
    
    18
    +f :: Tuple (MkTuple2 a b) -> ()
    
    19
    +f (MkTuple2 _ _) = ()
    
    20
    +
    
    21
    +-- works (failed before the fix)
    
    22
    +g :: Tuple (MkTuple2 a b) -> ()
    
    23
    +g x = ()
    
    24
    +
    
    25
    +-- works
    
    26
    +h :: Tuple @2 (MkTuple2 a b) -> ()
    
    27
    +h x = ()
    
    28
    +

  • testsuite/tests/typecheck/should_compile/all.T
    ... ... @@ -966,3 +966,5 @@ test('T26737', normal, compile, [''])
    966 966
     test('T26805a', normal, compile, [''])
    
    967 967
     test('T24464', normal, compile, [''])
    
    968 968
     test('ExpansionQLIm', normal, compile, [''])
    
    969
    +test('T23135', normal, compile, [''])
    
    970
    +