雖然哈斯克爾模塊評估行「進口Control.Monad.State」,GHC給了我以下錯誤:Control.Monad.State哈斯克爾
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.
如何解決這個矛盾?
雖然哈斯克爾模塊評估行「進口Control.Monad.State」,GHC給了我以下錯誤:Control.Monad.State哈斯克爾
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.
如何解決這個矛盾?
你有幾個選擇。可以是:
ghc-pkg hide monads-fd
。這會導致GHC和GHCi在默認情況下忽略monads-fd
的存在,直到您稍後ghc-pkg expose monads-fd
,但由Cabal安裝的軟件仍然能夠構建它。{-# LANGUAGE PackageImports #-}
編譯指示,並將您的導入語句更改爲import "mtl" Control.Monad.State
。Build-depends
行指定mtl
。第一個是最好的休閒黑客,最後是最好的生產建設。
這些都假設你想要mtl
模塊而不是monads-fd
模塊;否則交換它們。
這兩個軟件包都實現了Control.Monad.State,GHC並不知道它應該選擇哪個實現,所以你需要隱藏GHC中的一個軟件包。看起來像-ignore-package <name>
GHC標誌可能會幫助你在這裏。
感謝這個答案,我得到了一個徹頭徹尾的陰謀構建了同樣的問題,我不知道該怎麼辦。 – 2010-01-12 13:00:11