在多个包中找到Control.Monad.State haskell

在多个包中找到Control.Monad.State haskell,haskell,cabal,hackage,Haskell,Cabal,Hackage,在评估Haskell模块中的行“import Control.Monad.State”时,GHC给出以下错误: 如何解决此冲突?两个包都实现了Control.Monad.State,而GHC不知道应该选择哪个实现,因此您需要对GHC隐藏其中一个包。看起来,-ignore-packageGHC标志可能对您有所帮助。您有几个选项。要么: ghc包装隐藏单子fd。这将导致GHC和GHCi在默认情况下忽略存在的monads fd,直到您稍后GHC pkg公开monads fd,但由Cabal安装的软件

在评估Haskell模块中的行“import Control.Monad.State”时,GHC给出以下错误:


如何解决此冲突?

两个包都实现了Control.Monad.State,而GHC不知道应该选择哪个实现,因此您需要对GHC隐藏其中一个包。看起来,
-ignore-package
GHC标志可能对您有所帮助。

您有几个选项。要么:

  • ghc包装隐藏单子fd
    。这将导致GHC和GHCi在默认情况下忽略存在的
    monads fd
    ,直到您稍后
    GHC pkg公开monads fd
    ,但由Cabal安装的软件仍能够针对它进行构建
  • 使用
    {-#语言包imports}
    pragma,并将导入语句更改为
    import“mtl”Control.Monad.State
  • 使用Cabal构建项目,并在
    build dependens
    行中指定
    mtl
第一种方法最适合于随意的黑客攻击,最后一种方法最适合于生产构建


这些都假设您想要的是
mtl
模块,而不是
monads fd
模块;否则就换掉它们。

谢谢你的回答,我也遇到了同样的问题,我不知道该怎么办。
Could not find module `Control.Monad.State':
  it was found in multiple packages: monads-fd-0.0.0.1 mtl-1.1.0.2
Failed, modules loaded: none.