【问题标题】:How to find type signatures of multiple imported methods in GHCI如何在 GHCI 中查找多个导入方法的类型签名
【发布时间】:2023-03-20 11:04:01
【问题描述】:

我正在使用一个已加载到 GHCI 中的库。

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

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

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

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

【问题讨论】:

    标签: haskell types ghci


    【解决方案1】:

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

    【讨论】:

    • 这正是我想要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多