Control.monad.State는 여러 패키지 Haskell에서 발견됩니다
문제
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 플래그가 여기에서 도움이 될 수 있습니다.
제휴하지 않습니다 StackOverflow