para mac instalar descargar haskell cabal hackage

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 las monads-fd por defecto hasta que más tarde ghc-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 de import "mtl" Control.Monad.State para import "mtl" Control.Monad.State .
  • Use Cabal para compilar su proyecto, y especifique el mtl en la línea Build-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.