【发布时间】:2016-04-11 08:54:50
【问题描述】:
Happy 的最新版本在 GHC 7.10.4 中给出以下错误消息
没有 (Applicative HappyIdentity) 的实例 由实例声明的超类产生
我想我不应该搞砸Happy,但是我该如何解决我的问题呢?
【问题讨论】:
-
happy 1.19.5 实际上用 GHC 7.10.3 对我来说编译得很好。您确定要编译 1.19.5 而不是旧版本吗?
Happy 的最新版本在 GHC 7.10.4 中给出以下错误消息
没有 (Applicative HappyIdentity) 的实例 由实例声明的超类产生
我想我不应该搞砸Happy,但是我该如何解决我的问题呢?
【问题讨论】:
从 GHC 7.10 开始,"Applicative Monad Proposal" 已经实现。这是一个重大更改,Happy 库尚未更新以解决此问题。
haskell wiki 中有一个migration guide,正好解决了这个问题。
基本上因为Applicative 和Functor 现在是Monad 的超类,您需要添加实例声明。在这种情况下,HappyIdentity 是Monad 的一个实例,因此您需要添加实例Applicative HappyIdentity 和Functor HappyIdentity。此外,Monad 实例可以删除,因为它现在是多余的。
在不自己修改库的情况下,唯一的选择是升级到较早的 GHC 版本或等到库维护者更新库。
【讨论】: