Function 在GHCi中,为什么函数箭头“:kind”(>;)的类型包含问号“(>;):?”->->;*`?

Function 在GHCi中,为什么函数箭头“:kind”(>;)的类型包含问号“(>;):?”->->;*`?,function,haskell,types,ghci,Function,Haskell,Types,Ghci,可能重复: 在GHCi(7.0.2版)中,如果我询问函数类型的类型,结果会有问号: Prelude> :kind (->) (->) :: ?? -> ? -> * 为什么这种类型包含问号而不仅仅是星号*->*->*->*?问号是什么意思?为什么其他类型只使用星号 Prelude> :kind (,) (,) :: * -> * -> * ?和?类是指GHC扩展,特别是未装箱的类型。具有一个图表,显示扩展类型?(所有可能的类型)、#(未装箱类

可能重复:

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

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

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

类是指GHC扩展,特别是未装箱的类型。具有一个图表,显示扩展类型
(所有可能的类型)、
#
(未装箱类型)、
(已装箱或正常未装箱类型-“最小上界
#
*
”、
(#)、
(未装箱元组,只能在少量上下文中使用)。(标准类型
*
指的是普通的盒装类型。)

在我看来,如果GHC只在给GHCi一个特殊的pragma时显示这些扩展上下文,我更希望它,因为它们会让初学者感到困惑。另请参阅Don Stewart的更详细解释。