Из отчета Haskell 98:
Верхняя граница размера кортежа отсутствует, но некоторые реализации Haskell могут ограничивать размер кортежей и ограничивать экземпляры, связанные с большими кортежами. Тем не менее, каждая реализация Haskell должна поддерживать кортежи размером до 15, а также экземпляры для Eq, Ord, Bounded, Read и Show. (...)
Однако хорошо известно, что GHC не поддерживает кортежи размером более 62. Вот что происходит, когда я пытаюсь создать кортеж размера 63 в GHCi:
<interactive>:1:1: error:
A 63-tuple is too large for GHC
(max size is 62)
Workaround: use nested tuples or define a data type
Я понимаю, что это соответствует спецификации Haskell 98, а также, что кортеж размером более 62, вероятно, будет крайне ненужным, но я не понимаю, почему именно это так, как в GHC.
Подводя итог:
- Почему существует ограничение размера кортежа?
- Почему ограничение размера составляет 62?
Кроме того:
- Почему это относится только к GHC 6.12.2 и далее?
- Делают ли другие выдающиеся реализации Haskell? Каковы их причины?