reservadas - peta haskell en español
Especificando el nombre del paquete para los comandos relacionados con el módulo en ghci (2)
¿Es la configuración de la opción
-hide-package
lo único que puedo hacer para evitar la ambigüedad?
Puedes usar ghc-pkg
, por ejemplo
$ ghc-pkg hide monads-fd
Esto es como configurar -hide-package
en cada invocación ghc
subsiguiente. Los paquetes que dependan explícitamente de las monads-fd
través de Cabal no se verán afectados, pero todo lo demás lo es. ¡Cuidado!
¿Hay alguna manera de especificar el nombre del paquete para un módulo para los comandos :browse
,: :load
o :module
en ghci (versión 6.12.1)?
Algunos nombres de módulos son ambiguos:
Prelude> :module Control.Monad.Cont
<no location info>:
Ambiguous module name `Control.Monad.Cont'':
it was found in multiple packages: mtl-1.1.0.2 monads-fd-0.1.0.2
¿Es la configuración de la opción -hide-package
lo único que puedo hacer para evitar la ambigüedad?
Por lo que yo sé, sí. Pero no tiene que ser un gran problema, puedes hacer esto dentro de ghci:
Prelude Data.List> :set -hide-package mtl
package flags have changed, resetting and loading new packages...
Prelude> import Control.Monad.Cont
Prelude Control.Monad.Cont>
También había una línea de pedido en el registro de cambios de GHC-7 que me hizo pensar que las importaciones de paquetes funcionarían en la línea de comandos, pero no parece que todavía (vea más abajo). El comentario sobre el cambio decía algo así como "sintaxis de importación completa admitida en GHCi", que debe excluir las extensiones, supongo.
$ ghci-7.0.0.20100924 -XPackageImports
GHCi, version 7.0.0.20100924: http://www.haskell.org/ghc/ :? for help
...
Prelude Data.List> import "mtl" Control.Monad.Cont
<no location info>:
Ambiguous module name `Control.Monad.Cont'':
it was found in multiple packages: mtl-1.1.1.0 monads-fd-0.1.0.2