我有以下类型
class BoolHolding h where
data MyBool b :: 'Bool
但是,我一直收到错误:不在范围内:数据构造函数'Bool'。 Haskell是否由于某种原因不允许这样做,或者是否包含数据构造函数?如果没有,为什么不呢?
答案 0 :(得分:2)
好的,我做了两件事。
1:DataKinds
只需要解除构造函数,而不是数据类型。因此,'Bool
只需要Bool
。
2:data
的种类签名必须返回*
种类。我可以将数据插入到那种类型中,但是在完成所有应用程序之后,我最终必须有一个类型。我没有这个。
对于2,我所要做的就是将data
更改为type
,此限制不再存在。