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

时间:2011-03-11 19:42:49

标签: haskell types ghci

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

从功能的名称来看,我应该使用哪一个;我确定它存在,并希望看到我可以使用的函数的类型签名列表。我不知道该怎么做。

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

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

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

1 个答案:

答案 0 :(得分: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