你不能在关联数据类型中使用DataKinds吗?

时间:2018-04-28 13:23:04

标签: haskell typeclass type-families data-kinds

我有以下类型

class BoolHolding h where
  data MyBool b :: 'Bool

但是,我一直收到错误:不在范围内:数据构造函数'Bool'。 Haskell是否由于某种原因不允许这样做,或者是否包含数据构造函数?如果没有,为什么不呢?

1 个答案:

答案 0 :(得分:2)

好的,我做了两件事。

1:DataKinds只需要解除构造函数,而不是数据类型。因此,'Bool只需要Bool

2:data的种类签名必须返回*种类。我可以将数据插入到那种类型中,但是在完成所有应用程序之后,我最终必须有一个类型。我没有这个。

对于2,我所要做的就是将data更改为type,此限制不再存在。