模糊的模块名称`Prelude'

时间:2011-09-07 19:40:37

标签: haskell xmonad

当我想重新编译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平台)

3 个答案:

答案 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文件中的评论。