Quel paquet Haskell contient le module donné
Question
Je connais un nom de module Haskell, mais je ne sais pas dans quel package il est défini. C’est grave parce que je ne peux pas compiler sans package exposant ce module.
C'est précisément Text.Regex que je ne parviens pas à localiser, mais j'aimerais savoir comment résoudre ce problème en général.
La solution
http://www.haskell.org/ghc/ docs / latest / html / users_guide / packages.html
ghc-pkg find-module Text.Regex
Mais cela ne fonctionne que pour (a) les GHC récents et (b) les packages installés sur votre système.
Vous pouvez également passer par le fichier de package (par exemple, /usr/lib/ghc-6.8.2/package.conf) pour voir ce qui est installé.
Vous pouvez également utiliser les moteurs de recherche de l'API haskell hoogle ou le hackage du moteur de recherche hayoo .
Text.Regex est dans le paquet regex-base, et quelques autres construits dessus.
Autres conseils
Si vous utilisez Cabal et que le paquet est installé, essayez simplement de le compiler avec cabal build
, et Cabal vous informera du paquet que vous avez oublié d'ajouter à vos dépendances:
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 vous utilisez Debian et les paquets fournis par Debian, un index de la documentation globale situé à /usr/share/doc/ghc-doc/html/libraries/index.html
répertorie les package dans la dernière colonne.