haskell - 如何在 GHCI 中查找多个导入方法的类型签名

标签 haskell types ghci

我正在使用一个库,我已将其加载到 GHCI 中。

从函数的名称来看,我并不清楚应该使用哪一个;我确信它存在,并且希望查看我可用的函数的类型签名列表。我不知道该怎么做。

  • 我可以通过键入模块名称并在 GHCI 中使用制表符补全来获取库导出的所有函数的列表。
  • Hoogle对我来说没用,因为有问题的图书馆没有被涵盖。不过,胡格尔风格的搜索会很有用。
  • 我知道 GHCI :t ,但它似乎只适用于单个函数,而且我不想对库导出的每个函数都执行此操作。
  • 正在运行 grep -R :: ./*或类似的源目录可能会省略没有显式类型签名的函数。
  • 该库有 Haddock 文档,但它有大约 1000 个函数,分布在数十个子模块中,手动搜​​索所有函数非常繁琐且容易出错。

我愿意尝试任何方法,但显然更喜欢简单、可移植和可重复的方法。

有没有办法找到库中所有导出函数的类型签名?或者找出哪些函数具有包含特定类型的类型签名?

最佳答案

只需使用:browse Module.Name,您就会看到该模块导出的所有值:

> :browse Data.Tagged
newtype Tagged s b = Tagged {unTagged :: b}
asTaggedTypeOf :: s -> Tagged s b -> s
retag :: Tagged s b -> Tagged t b
tagSelf :: a -> Tagged a a
untag :: Tagged s b -> b
untagSelf :: Tagged a a -> a

关于haskell - 如何在 GHCI 中查找多个导入方法的类型签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5277563/

相关文章:

haskell - 如何在 hsparql 中指定语言文字?

c - fgetc 不识别 EOF

scala - Scala类参数化中附加冒号的含义

testing - 正确性的下限(通过测试)与上限(通过证明)

haskell - 在 GHCi 中,我可以使用前面表达式的结果吗?

haskell - 如何在哈姆雷特中使用 $maybe

haskell - Monad如何符合函数的组成

networking - 在 Haskell 中列出网络接口(interface)

windows - 如何在 Windows 上将 GHCi 提示符设置为 lambda 字符?

haskell - 在 GHCI 中禁用 "Non-exhaustive patterns in case"