我正在使用
{-# 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'
但是,这似乎应该是完全可能的。
编辑:我现在发现上述代码还存在其他问题。
但是,这仍然是一个有效的问题。
答案 0 :(得分:3)
问题是因为默认情况下Constraint
并未从Prelude
导出。您可以勾住Constraint
来查找位置:
尝试将以下内容添加到您的模块中:
import Data.Kind (Constraint)
它为我解决了问题。