Qual pacote Haskell contém determinado módulo
Pergunta
Eu sei um nome de módulo Haskell, mas eu não consigo descobrir em qual pacote é definido. Isso é ruim porque eu não consigo compilar sem um pacote de expor este módulo.
specificaly é Text.Regex que não consigo localizar, mas eu gostaria de saber como resolver esse problema em geral.
Solução
http://www.haskell.org/ghc/ docs / latest / html / users_guide / packages.html
achado módulo ghc-pkg Text.Regex
Mas isso só funciona para (a) GHCs recentes, e (b) os pacotes instalados em seu sistema.
Você também pode grep através do arquivo de pacote (por exemplo /usr/lib/ghc-6.8.2/package.conf) para ver o que está instalado.
Você também pode usar os motores de busca haskell API Hoogle ou o hackage motor hayoo .
Text.Regex está no regex-base de pacote, e alguns outros construída em cima dela.
Outras dicas
Se você estiver usando Cabal e você ter o pacote instalado, você pode apenas tentar compilá-lo com cabal build
, e Cabal irá informá-lo de que pacote você se esqueceu de adicionar aos seus dependências:
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.
Se você estiver usando Debian e os pacotes Debian-fornecidos, há um índice de documentação global a /usr/share/doc/ghc-doc/html/libraries/index.html
que lista o pacote na última coluna.