Frage

Während die Zeile "Import Control.Monad.State" in einem Modul Haskell Auswertung gibt GHC mir folgende Fehlermeldung:

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.

Wie behebe ich diesen Konflikt?

War es hilfreich?

Lösung

Sie haben mehrere Möglichkeiten. Entweder:

  • ghc-pkg hide monads-fd. Dies führt dazu, GHC und GHCi die Anwesenheit des monads-fd standardmäßig, bis Sie später ghc-pkg expose monads-fd zu ignorieren, aber Software von Cabal installiert wird noch zu bauen gegen sie in der Lage sein.
  • Verwenden Sie die {-# LANGUAGE PackageImports #-} Pragma, und ändern Sie Ihre Import-Anweisung zu import "mtl" Control.Monad.State.
  • Verwenden Sie Cabal Ihr Projekt zu erstellen, und geben Sie mtl in der Build-depends Linie.

Das ist zunächst am besten für lässige Hacking, und der letzte ist am besten für die Produktion baut.

übernehmen Diese alle Sie mtl Modul wollen und nicht das monads-fd-Modul; andernfalls tauschen sie.

Andere Tipps

Beide Pakete implementieren Control.Monad.State und GHC nicht weiß, welche Umsetzung sollte es vorziehen, so dass Sie zu verbergen eines der Pakete von GHC müssen. Scheint, wie die -ignore-package <name> GHC Flagge könnte Ihnen dabei helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top