Qué paquete Haskell contiene el módulo dado
Pregunta
Sé un nombre de módulo de Haskell, pero no puedo averiguar en qué paquete está definido. Esto es malo porque no puedo compilar sin un paquete que exponga este módulo.
Específicamente es Text.Regex que no puedo localizar, pero me gustaría saber cómo resolver ese problema en general.
Solución
http://www.haskell.org/ghc/ docs / latest / html / users_guide / packages.html
ghc-pkg find-module Text.Regex
Pero eso solo funciona para (a) GHC recientes, y (b) paquetes instalados en su sistema.
También puede hacer grep a través del archivo del paquete (por ejemplo, /usr/lib/ghc-6.8.2/package.conf) para ver qué está instalado.
También puede utilizar los motores de búsqueda de la API de haskell hoogle o hackage motor de búsqueda hayoo .
Text.Regex está en el paquete regex-base, y algunos otros están construidos sobre él.
Otros consejos
Si está utilizando Cabal y tiene el paquete instalado, puede intentar compilarlo con cabal build
, y Cabal le informará qué paquete olvidó agregar a sus dependencias:
Main.hs:1:8:
Could not find module `Text.Regex':
It is a member of the hidden package `regex-compat-0.93.1'.
Perhaps you need to add `regex-compat' to the build-depends in your .cabal file.
Use -v to see a list of the files searched for.
Si está utilizando Debian y los paquetes provistos por Debian, hay un índice de documentación global en /usr/share/doc/ghc-doc/html/libraries/index.html
que enumera paquete en la última columna.