如何查找Haskell名称的包,版本和文档

rob*_*obx 5 haskell ghci

我的具体问题是这样的:我碰到的名字跑throwTModule.hs一个大项目的Haskell.我想知道是什么throwT.我最终成功地将这一点想象如下:

  1. 为该项目启动ghci
  2. :load Module.hs 其次是 :i throwT throwT :: Monad m => e -> Control.Monad.Trans.Either.EitherT e m r -- Defined in ‘Data.EitherR’
  3. 查询hayooData.EitherR,它指向在封装errors
  4. ghc-pkg list errorserrors-1.4.7
  5. 浏览hackage到该版本的错误包的文档:throwT

有没有更好的方法来做到这一点,从更精确的意义上讲(步骤3不是),而且不那么乏味?

Zet*_*eta 7

您可以使用ghc-pkg find-module而不是list,它会立即为您提供包含模块的软件包的已安装版本:

  1. 点燃GHCi
  2. :load YourModule.hs,继续:info你的价值
  3. 使用给定的模块名称ghc-pkg find-module.
  4. 您现在知道确切的模块,包和版本.

这仍然迫使您检查hackage文档.但是,如果添加documentation: true到cabal配置中--enable-documentation,cabal将在安装给定包期间自动构建文档.然后你可以缩短程序

  1. 点燃GHCi
  2. :load YourModule.hs,继续:info你的价值
  3. 查看本地文档以获取参考模块.

本地文档将存储在您的cabal目录中,或者,如果您位于沙箱中,则存储在.cabal-sandbox/share/doc/<plattform>/index.html.