在GHCi中,为什么函数arrow`:kind( - >)`包括问号`( - >):: ?? - > ? - > *`?

时间:2011-03-19 02:47:19

标签: function haskell types ghci

  

可能重复:
  Haskell Weird Kinds: Kind of (->) is ?? -> ? -> *

在GHCi(版本7.0.2)中,如果我要求函数类型的类型,结果有问号:

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

为什么这种类型包含问号而不仅仅是星号* -> * -> *?问号是什么意思?为什么其他类型只使用星号?

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

1 个答案:

答案 0 :(得分:16)

???种是指GHC扩展,特别是未装箱的类型。 http://hackage.haskell.org/trac/ghc/wiki/IntermediateTypes的图表显示了扩展种类?(所有可能类型),#(未装箱类型),??(盒装或普通未装箱类型 - “最低级别)之间的关系#*“)的绑定,(#)(未装箱的元组,只能在少数情况下使用)。 (标准种类*指的是正常的盒装类型。)