Haskell 如何正确访问“Constraint”类?

Haskell 如何正确访问“Constraint”类?,haskell,functional-programming,constraints,ghci,type-kinds,Haskell,Functional Programming,Constraints,Ghci,Type Kinds,我在和GHCi的人玩。在链接的帖子中,我发现了一个很好的例子: type NoConstraint = (() :: Constraint) 但我不能让它工作。GHCi自由输出约束种类,不允许我同时使用它。即。以下是我的完整GHCi课程(我不太确定我是否知道正确的单词;如果有合适的术语,我将感谢读者的编辑): GHCi,8.6.5版:http://www.haskell.org/ghc/ :? 求救 前奏曲>:set-XConstraintKinds-XKindSignatures 前奏曲>

我在和GHCi的人玩。在链接的帖子中,我发现了一个很好的例子:

type NoConstraint = (() :: Constraint)
但我不能让它工作。GHCi自由输出
约束
种类,不允许我同时使用它。即。以下是我的完整GHCi课程(我不太确定我是否知道正确的单词;如果有合适的术语,我将感谢读者的编辑):

GHCi,8.6.5版:http://www.haskell.org/ghc/ :? 求救 前奏曲>:set-XConstraintKinds-XKindSignatures 前奏曲>类型NoConstraint=(()::约束) :2:28:错误: 不在范围内:类型构造函数或类“Constraint” 也许你的意思是“无约束”(第2行) 如何正确访问
约束
种类?

如中所述,需要从
Data.kind
模块导入
约束
种类。请参见下面我的GHCi课程:

Prelude> :set -XConstraintKinds -XKindSignatures
Prelude> type NoConstraint = (() :: Constraint)

<interactive>:2:28: error:
    Not in scope: type constructor or class `Constraint'
    Perhaps you meant `NoConstraint' (line 2)
Prelude> :m +Data.Kind
Prelude Data.Kind> type NoConstraint = (() :: Constraint)
Prelude Data.Kind>
Prelude>:set-XConstraintKinds-XKindSignatures
前奏曲>类型NoConstraint=(()::约束)
:2:28:错误:
不在范围内:类型构造函数或类“Constraint”
也许你的意思是“无约束”(第2行)
前奏曲>:m+Data.Kind
前奏曲数据.Kind>type NoConstraint=(()::约束)
序曲数据。种类>
我建议:
输入NoConstraint::Constraint;键入NoConstraint=()