-
Are n-tuples defined recursively in terms of 2-tuples, for example, are (a,b,c) and (a,(b,c)) the same?
-
If not, what’s the rationale behind it?
2
(a, (b, c)) is a 2-tuple whose second element happens to be another 2-tuple. If your suggestion had been adopted, it would not be possible to represent a tuple inside the final cell of another tuple. Which would be a bizarrely asymmetric restriction and make tuples much less generally useful.
4
1, No it’s defined separately for each tuple. (So data (,) a b = (,) a b for the 2-tuple).
You can see the full list(and limit that you can use) here: https://downloads.haskell.org/~ghc/7.4.1/docs/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html (also the comment about the number of n-tuples in the source is funny)
2, I would say performance but not sure about this.(Edit: see @itsbruce’s answer for a better reason)
2