Подтвердить что ты не робот

В GHCi, почему тип функции arrow `: kind (->)` включает вопросительные знаки `(->)::?? ->? → * `?

Возможный дубликат:
Haskell Weird Kinds: Вид (- > ) есть? → ? → *

В GHCi (версия 7.0.2), если я попрошу тип типа функции, результат имеет вопросительные знаки:

Prelude> :kind (->)
(->) :: ?? -> ? -> *

Почему этот вид включает вопросительные знаки вместо звездочек * -> * -> *? Что означают значки вопроса? Почему другие типы просто используют звездочки?

Prelude> :kind (,)
(,) :: * -> * -> *
4b9b3361

Ответ 1

Типы ? и ?? относятся к расширениям GHC, особенно к незанятым типам. http://hackage.haskell.org/trac/ghc/wiki/IntermediateTypes имеет диаграмму, показывающую отношения между расширенными типами ? (все возможные типы), # (unboxed types), ?? (в коробке или в нормальном unboxed-типах - "наименьшая верхняя граница # и *" ), (#) (unboxed tuples, которые могут использоваться только в небольшом количестве контекстов). (Стандартный тип * относится к обычным коробчатым типам.)