我在Ubuntu 14.04上遇到了使用GHC 7.8.3和Cabal 1.16.0.2尝试cabal install agda
的兼容性问题。
问题似乎出现在haskell-src-exts-1.15.0.1
,这是Agda所要求的。编译该库会导致well-known problem导致({3}}导致Happy生成的代码 - 生成的代码与版本7.8中的a change to GHC不兼容。
templates/GenericTemplate.hs:104:22:
Couldn't match expected type ‘Bool’
with actual type ‘Happy_GHC_Exts.Int#’
In the expression:
(n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#))
In a stmt of a pattern guard for
a case alternative:
(n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#))
In a case alternative:
n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#))
-> (happyReduceArr Happy_Data_Array.! rule) i tk st
where
rule
= (Happy_GHC_Exts.I#
((Happy_GHC_Exts.negateInt#
((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
article mentioned above描述了如何清理和重建包含不兼容的Happy生成代码的库。但是,我无法为haskell-src-exts-1.15.0.1做这项工作。特别是,尝试
cabal unpack haskell-src-exts-1.15.0.1
cd haskell-src-exts-1.15.0.1
cabal clean
cabal install
遇到了同样的问题。
有什么建议吗?
答案 0 :(得分:1)
简短回答: Cabal 1.16。*与GHC 7.8.3不兼容,因此请安装最近版本的cabal-install(例如版本1.20.0.3),删除与GHC 7.8相关的目录。 3来自〜/ .ghc(例如x86_64-linux-7.8.3)并再次安装所有内容。
答案很长:请参阅GHC issue 9060。