当我想重新编译xmonad以更改配置时,我得到了这个:
Implicit import declaration:
Ambiguous module name `Prelude':
it was found in multiple packages: base haskell98-2.0.0.0
Xmonad是通过pacman安装的。当我收到此错误时,我从pacman中删除了xmonad,然后尝试安装xmonad。我再次得到了上述错误但我能够通过从cabal文件中删除haskell98来解决它。
现在我想用MOD-Q重新配置xmonad,错误再次出现,我不知道如何解决这个问题。任何帮助表示赞赏。
我使用GHC 7.0.3版(来自Haskell平台)
答案 0 :(得分:15)
试试这个:
ghc-pkg hide haskell98
答案 1 :(得分:2)
在我的情况下隐藏haskell98不幸的是,我不得不从我的.cabal构建文件中的build-depends列表中删除过时的haskell98(保持基数> = 4当然)。 它之前读过:
build-depends:
base >= 4,
haskell98
......然后......
build-depends:
base >= 4
上面的错误消息“不明确的模块名称`Prelude'”消失了。
答案 2 :(得分:1)
关于同一主题,请参阅此GHC bug ticket:
从版本7.2.1开始的GHC将不支持使用
haskell98
包和base
包同时出现。haskell-src
包。build-depends
在haskell98
中都有这两个,所以它需要 改性。大多数情况下,您要执行的操作是删除build-depends
来自{{1}},并修复任何Haskell 98模块的导入 指向它们的基本等价物。
错误故障单已关闭(没有修复),原始文件管理器响应:
是的,从.cabal文件中删除haskell98似乎修复了它 - 它 编译没有错误。看起来它没有任何进口 到haskell98,因为根据.cabal文件中的评论。