问题 哪个Haskell包包含给定的模块


我知道一个Haskell模块名称,但我无法弄清楚它是在什么包中定义的。这很糟糕,因为如果没有暴露这个模块的包,我就无法编译。

具体来说,我无法找到Text.Regex,但我想知道如何解决这个问题。


4790
2017-09-26 20:37


起源



答案:


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

ghc-pkg find-module Text.Regex

但这仅适用于(a)最近的GHC,以及(b)系统上安装的软件包。

您还可以浏览包文件(例如/usr/lib/ghc-6.8.2/package.conf)以查看已安装的内容。

您还可以使用haskell API搜索引擎 hoogle 或者 hackage 搜索引擎 hayoo

Text.Regex在包regex-base中,还有一些基于它构建。


12
2017-09-26 20:42



我有ghc-pkg 6.8.2,它不接受find-module :( - luntain
我只能通过点击一些来自hoogle的结果来找到它。目前似乎没有简单的方法来找到这些包。希望新发布的ghc能够解决这个问题。 - luntain
+1 Hoogle。这是迄今为止我找到的最简单的方法。当有一个非常好的搜索引擎选项时,命令行的东西有点不必要:)(imho) - OJ.
当你离线时,这没什么用处。希望这种野蛮行为很少见,但...... - wnoise


答案:


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

ghc-pkg find-module Text.Regex

但这仅适用于(a)最近的GHC,以及(b)系统上安装的软件包。

您还可以浏览包文件(例如/usr/lib/ghc-6.8.2/package.conf)以查看已安装的内容。

您还可以使用haskell API搜索引擎 hoogle 或者 hackage 搜索引擎 hayoo

Text.Regex在包regex-base中,还有一些基于它构建。


12
2017-09-26 20:42



我有ghc-pkg 6.8.2,它不接受find-module :( - luntain
我只能通过点击一些来自hoogle的结果来找到它。目前似乎没有简单的方法来找到这些包。希望新发布的ghc能够解决这个问题。 - luntain
+1 Hoogle。这是迄今为止我找到的最简单的方法。当有一个非常好的搜索引擎选项时,命令行的东西有点不必要:)(imho) - OJ.
当你离线时,这没什么用处。希望这种野蛮行为很少见,但...... - wnoise


如果您正在使用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.

2
2018-05-11 20:47





最好的工具是:

两者都是Haskell模块和函数的搜索引擎。


1
2018-04-17 19:24





如果您使用的是Debian和Debian提供的软件包,那么有一个全局文档索引 /usr/share/doc/ghc-doc/html/libraries/index.html 其中列出了最后一列中的包。


0
2017-09-23 20:45