В GHCI, почему со стрелкой функции `: kind (->)` включает в себя знаки вопросов `(->) :: ?? ->? -> *`? [дублировать

StackOverflow https://stackoverflow.com/questions/5359707

  •  27-10-2019
  •  | 
  •  

Вопрос

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

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

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

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

Prelude> :kind (,)
(,) :: * -> * -> *
Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top