[英]How to find package, version, documentation for a Haskell name
我的具體問題是這樣的:我碰到的名字跑throwT
在Module.hs
在一個大項目的Haskell。 我想知道throwT
作用。 我最終成功地將這一點想象如下:
:load Module.hs
后跟:i throwT
throwT :: Monad m => e -> Control.Monad.Trans.Either.EitherT emr -- Defined in 'Data.EitherR'
Data.EitherR
查詢hayoo ,它指向包errors
ghc-pkg list errors
給出errors-1.4.7
有沒有更好的方法來做到這一點,從更精確的意義上講(步驟3不是),而且不那么乏味?
您可以使用ghc-pkg find-module
而不是list
,它會立即為您提供包含該模塊的軟件包的已安裝版本:
:load YourModule.hs
,獲取:info
關於價值的信息 ghc-pkg find-module
。 這仍然迫使您檢查hackage文檔。 但是,如果您添加documentation: true
到您的cabal配置或--enable-documentation
,cabal將在安裝給定包期間自動構建文檔。 然后你可以縮短程序
:load YourModule.hs
,獲取:info
關於價值的信息 本地文檔將存儲在您的cabal目錄中,或者,如果您位於沙箱中,則存儲在.cabal-sandbox/share/doc/<plattform>/index.html
。
理想情況下,每個模塊都顯式導入它使用的每個函數。 假設throwT
在throwT
中使用Module.hs
在其中定義,首先要檢查的是在Module.hs
頂部是否有一個顯式導入函數的import語句,它看起來像import Some-Module (throwT, someOtherFunction, possiblyAnotherFunction)
一樣 - import Some-Module (throwT, someOtherFunction, possiblyAnotherFunction)
,其中Some-Module
是要導入的模塊,括號內的函數是從該模塊導入的唯一內容(這是顯式導入的內容)。 然后,您將找到Some-Module
並查找throwT
的定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.