Arbitrary size tuples in Haskell