Why does the Scala library only defines tuples up to Tuple22?
I believe it has to do with difficulties in implementing a static type system while having variadic (arbitrary-argument) functions. I believe apply
can be written in Scala (though not in Haskell, at least not elegantly).
This question is not new, see http://scala-programming-language.1934581.n4.nabble.com/Why-tuples-only-to-22-td1945314.html or why FunctionN(0-22) ProductN(1-22) TupleN(1-22)?
AFAIK there is no "technical" explanation for it, they simply had to stop somewhere.
The case class limit has been lifted in 2.11 https://github.com/scala/scala/pull/2305