문제

Haskell 모듈에서 "import control.monad.state"라인을 평가하는 동안 GHC는 다음과 같은 오류를 나타냅니다.

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 #-} Pragma, Import 문을 변경하십시오 import "mtl" Control.Monad.State.
  • Cabal을 사용하여 프로젝트를 구축하고 지정하십시오 mtl 에서 Build-depends 선.

첫 번째는 캐주얼 해킹에 가장 적합하며 마지막은 프로덕션 빌드에 가장 적합합니다.

이것들은 모두 당신이 원하는 것을 가정합니다 mtl 모듈이 아닙니다 monads-fd 기준 치수; 그렇지 않으면 스왑하십시오.

다른 팁

두 패키지 모두 Control.monad.state 및 GHC는 선호하는 구현을 모르므로 GHC에서 패키지 중 하나를 숨겨야합니다. 그런 것 같습니다 -ignore-package <name> GHC 플래그가 여기에서 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top