我正在尝试为(':)
派生一个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)
我得到了预期的结果,但我不想重写现有代码以使用自定义列表类型。
答案 0 :(得分:8)
这似乎有效
deriving instance Typeable '(:)
据推测,'
旨在标记“整个类型构造函数”,包括它是否被分割?对我来说似乎有点奇怪。这与元组一致,但是你要编写
'(a, b)