Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 为什么可以';我是否在类型族声明中使用约束类型?_Haskell_Types_Constraints_Type Families - Fatal编程技术网

Haskell 为什么可以';我是否在类型族声明中使用约束类型?

Haskell 为什么可以';我是否在类型族声明中使用约束类型?,haskell,types,constraints,type-families,Haskell,Types,Constraints,Type Families,我正在使用 {-# LANGUAGE TypeFamilies, DataKinds, ConstraintKinds, ExistentialQuantification #-} 并已键入以下代码: class NoConstraint x where {} instance forall x. NoConstraint x where {} type family Classes (c :: [* -> Constraint]) (x :: *) :: Constraint typ

我正在使用

{-# LANGUAGE TypeFamilies, DataKinds, ConstraintKinds, ExistentialQuantification #-}
并已键入以下代码:

class NoConstraint x where {}
instance forall x. NoConstraint x where {}

type family Classes (c :: [* -> Constraint]) (x :: *) :: Constraint
type instance Classes [] x = NoConstraint x
type instance Classes (h : t) x = (h x, Classes t x)
然而,GHC(i)拒绝了这一要求,并提出:

Not in scope: type constructor or class `Constraint'
然而,这似乎是完全可能的


编辑:我现在发现上述代码还有其他问题。

但是,这仍然是一个有效的问题。

问题是因为默认情况下,
约束
不是从
序言
导出的。您可以选择
Constraint
来查找它的位置:

尝试将以下内容添加到模块中:

import Data.Kind (Constraint)
它为我解决了这个问题