2008-09-26 9 views
11

Je connais un nom de module Haskell, mais je ne peux pas déterminer dans quel paquet il est défini. C'est mauvais car je ne peux pas compiler sans un paquet exposant ce module.Quel paquet Haskell contient le module

Spécifiquement, c'est Text.Regex que je ne trouve pas, mais je voudrais savoir comment résoudre ce problème en général.

Répondre

11

http://www.haskell.org/ghc/docs/latest/html/users_guide/packages.html

trouver module GHC-pkg Text.Regex

Mais cela ne fonctionne que pour (a) GHCs récentes, et (b) les packages installés sur votre système.

Vous pouvez également parcourir 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 API haskell hoogle ou le moteur de recherche hackagehayoo. Text.Regex est dans le paquet regex-base, et quelques autres sont construits dessus.

+0

J'ai ghc-pkg 6.8.2, et il n'accepte pas find-module :( – luntain

+0

Je ne l'ai trouvé qu'en cliquant sur quelques résultats de hoogle. – luntain

+0

+1 Hoogle C'est de loin le moyen le plus simple que j'ai trouvé: les trucs en ligne de commande sont un peu inutiles quand il y a une option de moteur de recherche parfaitement bonne :) (imho) –

1

Les meilleurs outils sont:

Les deux sont des moteurs de recherche pour les modules et fonctions Haskell.

2

Si vous utilisez Cabal et que vous avez installé le paquet, vous pouvez juste essayer de le compiler avec cabal build et Cabal vous informera de quel paquet 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. 
0

Si vous utilisez Debian et les paquets fournis par Debian, il existe un index de documentation global au /usr/share/doc/ghc-doc/html/libraries/index.html qui liste le paquet dans la dernière colonne.

Questions connexes