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

4

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

从函数名来看,我不确定应该使用哪个函数;我确信它存在,并想查看可用于我的函数的类型签名列表。我不知道如何做到这一点。

  • 我可以通过输入模块名称并在GHCI中使用tab键自动完成来获取所有导出的函数列表。
  • Hoogle 对我没用,因为所涉及的库没有被覆盖到。但Hoogle式的搜索可能会有用。
  • 我知道GHCI的 :t 命令,但它似乎只适用于单个函数,而我不想为每个被库导出的函数都执行此操作。
  • 运行类似 grep -R :: ./* 的命令可以省略没有显式类型签名的函数。
  • 该库有Haddock文档,但其中包含约1000个函数分布在数十个子模块中,手动搜索它们所有是繁琐且容易出错的。

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

是否有一种方法可以找到库中所有导出函数的类型签名?或者找出哪些函数具有包含某个类型的类型签名?

1个回答

5

只需使用 :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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接