haskell - 如何找到提供导入的库?

标签 haskell cabal haskell-stack

我加入了一个项目。代码库对我来说是新的。
我对代码库中使用的模块感兴趣
它是从依赖项中导入的。
该模块未在项目中定义。
是否有一种自动/简单的方法来确定库提供了什么
我感兴趣的模块?
很多依赖项都是专有的,hoogle 无法帮助我。

最佳答案

您可以使用 ghc-pkg find-module命令:

$ ghc-pkg find-module Data.List
/opt/ghc/8.10.1/lib/ghc-8.10.1/package.conf.d
    base-4.14.0.0
/home/simon/.ghc/x86_64-linux-8.10.1/package.conf.d
    (no packages)
stack使用自己的包 DB 的项目,您必须将命令包装在 stack exec 中:
$ stack exec -- ghc-pkg find-module Data.Fix
/home/simon/.stack/programs/x86_64-linux/ghc-8.6.5/lib/ghc-8.6.5/package.conf.d
    (no packages)
/home/simon/.stack/snapshots/x86_64-linux/0d371d66c37115ac97bac3fbbc5cc7b3718e197710ba11b06c7e9d7fcf441a3f/8.6.5/pkgdb
    data-fix-0.2.0
/home/simon/src/dhall-haskell/.stack-work/install/x86_64-linux/0d371d66c37115ac97bac3fbbc5cc7b3718e197710ba11b06c7e9d7fcf441a3f/8.6.5/pkgdb
    (no packages)
我不知道如何最好地使用 ghc-pkgcabal项目。

关于haskell - 如何找到提供导入的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62998146/

相关文章:

haskell - Haskell 如何推断类型类的定义?

haskell - Haskell 中的类型签名

haskell - 在启用分析的情况下构建所有库是否有任何真正的缺点?

haskell - 对符号 'pthread_setname_np@@GLIBC_2.12' 的 undefined reference OpenSuse42.3 上的 Haskell 堆栈错误

haskell - 直接从 git 存储库安装 Haskell 包?

haskell - 是否可以从 Hackage 查看软件包下载统计信息?

haskell - Yesod 构建错误,因为符号 "hsprimitive_memcpy"的重复定义

haskell - 解决 Travis-CI 上的 cabal 依赖性时出错

haskell - 如何在 ghci 中使用 cabal 的 MIN_VERSION_ 和其他宏?

haskell - 将 ghci 与库堆叠