为(':)导出一个Typeable实例

时间:2014-09-06 17:34:19

标签: haskell

我正在尝试为(':)

派生一个Typeable实例

我正在使用DataKinds和[*]。

我启用了TypeOperators,StandaloneDeriving和PolyKinds

我无法派生可输入的

实例

我试过了

deriving instance Typeable (':)

deriving instance Typeable ':

deriving instance Typeable ((':))

但他们都得到解析错误。

我知道如果我写

data List a = Cons a (List a) | Empty

deriving instance Typeable (Cons)

我得到了预期的结果,但我不想重写现有代码以使用自定义列表类型。

1 个答案:

答案 0 :(得分:8)

这似乎有效

 deriving instance Typeable '(:)

据推测,'旨在标记“整个类型构造函数”,包括它是否被分割?对我来说似乎有点奇怪。这与元组一致,但是你要编写

'(a, b)