mac - Control.Monad.State encontrado en mĂșltiples paquetes haskell
instalar cabal (2)
Al evaluar la línea "importar Control.Monad.State" en un módulo Haskell, GHC me da el siguiente error:
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.
¿Cómo resuelvo este conflicto?
Ambos paquetes implementan Control.Monad.State y GHC no saben qué implementación debería preferir, por lo que debe ocultar uno de los paquetes de GHC. Parece que el -ignore-package <name> GHC -ignore-package <name> podría ayudarte aquí.
Tienes varias opciones. Ya sea:
-
ghc-pkg hide monads-fd. Esto hará que GHC y GHCi ignoren la presencia de lasmonads-fdpor defecto hasta que más tardeghc-pkg expose monads-fd, pero el software instalado por Cabal aún podrá compilarse contra ellas. - Use el pragma
{-# LANGUAGE PackageImports #-}, y cambie su declaración deimport "mtl" Control.Monad.Stateparaimport "mtl" Control.Monad.State. - Use Cabal para compilar su proyecto, y especifique el
mtlen la líneaBuild-depends.
Lo primero es lo mejor para el hackeo informal, y lo último es lo mejor para las construcciones de producción.
Todos suponen que desea el módulo mtl y no el módulo monads-fd ; De lo contrario intercambiarlos.