Какой пакет Haskell содержит данный модуль

Я знаю имя модуля Haskell, но я не могу понять, в каком пакете он определен. Это плохо, потому что я не могу скомпилировать без пакета, обнажающего этот модуль.

Конкретно это Text.Regex, который я не могу найти, но я хотел бы знать, как решить эту проблему в целом.

Ответ 1

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

ghc-pkg find-module Text.Regex

Но это работает только для (a) недавних GHC и (b) пакетов, установленных в вашей системе.

Вы также можете выполнить grep через файл пакета (например,/usr/lib/ghc-6.8.2/package.conf), чтобы узнать, что установлено.

Вы также можете использовать либо поисковые системы API haskell hoogle, либо hackage поисковая система hayoo.

Text.Regex находится в пакете regex-base и несколько других, построенных поверх него.

Ответ 2

Если вы используете Cabal и у вас установлен пакет, вы можете просто скомпилировать его с помощью cabal build, и Cabal сообщит вам, какой пакет вы забыли добавить в свои зависимости:

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.

Ответ 3

Лучшие инструменты:

Оба являются поисковыми системами для модулей и функций Haskell.

Ответ 4

Если вы используете пакеты Debian и Debian, в /usr/share/doc/ghc-doc/html/libraries/index.html есть глобальный индекс документации, который перечисляет пакет в последнем столбце.