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

Haskell 如何在GHCI中查找多个导入方法的类型签名,haskell,types,ghci,Haskell,Types,Ghci,我正在使用一个库,我已经将它加载到GHCI中 从函数的名称来看,我不知道应该使用哪个函数;我确信它存在,并且希望看到我可用的函数的类型签名列表。我不知道怎么做 我可以通过键入模块名称并在GHCI中使用制表符来获得库导出的所有函数的列表 对我来说没用,因为这个图书馆没有盖。不过,胡格尔式的搜索会很有用 我知道GHCI的:t,但它似乎只适用于单个函数,我不想对库导出的每个函数都这样做 在源目录上运行grep-R::./*或类似命令可能会忽略没有显式类型签名的函数 该库有Haddock文档,但它有大

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

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

  • 我可以通过键入模块名称并在GHCI中使用制表符来获得库导出的所有函数的列表
  • 对我来说没用,因为这个图书馆没有盖。不过,胡格尔式的搜索会很有用
  • 我知道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

这正是我想要的。谢谢