【发布时间】:2016-02-07 08:43:11
【问题描述】:
我正在尝试构建需要包stream-fusion-0.1.2.5 的项目Barbarosa。但是 cabal install 失败并显示以下内容
[3 of 3] Compiling Control.Monad.Stream ( Control/Monad/Stream.hs, dist/dist-sandbox-8bb5b9c9/build/Control/Monad/Stream.o )
Control/Monad/Stream.hs:136:10:
Ambiguous occurrence ‘MonadPlus’
It could refer to either ‘Control.Monad.Stream.MonadPlus’,
defined at Control/Monad/Stream.hs:124:1
or ‘GHC.Base.MonadPlus’,
imported from ‘GHC.Base’ at Control/Monad/Stream.hs:80:1-15
Control/Monad/Stream.hs:140:10:
Ambiguous occurrence ‘MonadPlus’
It could refer to either ‘Control.Monad.Stream.MonadPlus’,
defined at Control/Monad/Stream.hs:124:1
or ‘GHC.Base.MonadPlus’,
imported from ‘GHC.Base’ at Control/Monad/Stream.hs:80:1-15
我在 OS X 10.11 上使用 GHC 版本 7.10.2,通过 Haskell 平台安装。
似乎stream-fusion的唯一依赖是base,其版本应该没问题,所以我不确定这里有什么问题。
【问题讨论】:
-
该包的
Control.Monad.Stream模块定义了自己的MonadPlus类型类。我认为这个包简直烂透了。 -
我怀疑
GHC.Base没有用来导出MonadPlus,但是 7.10 的变化使事情发生了变化。
标签: haskell cabal cabal-install stream-fusion