当我研究不熟悉的Haskell代码时,有时我会遇到其他地方定义的类型和数据构造函数。我会尝试点击我的代码并搜索Hoogle,这有时会导致快速解释,但通常都是无用的。
例如,我花了一个小时尝试在Yesod代码库中识别对名为Object
的数据类型的引用,最后发现它是在Data.Yaml包中定义的。
有没有办法使用GHCi快速遵循其定义的符号引用?也许在解释器中加载相同的模块并在命名空间中搜索未识别的类型构造函数或符号引用?
答案 0 :(得分:0)
如果你可以在ghci中加载代码,只需运行:i symbol
(其中符号可以是类型或值),它将告诉你它的定义位置,以及定义任何类实例的位置。
如果您无法在ghci中加载代码,那么您可以使用hoogle进行查找。我建议安装hoogle搜索插件,并为其提供一个非常短的关键字,如“h”。然后你可以输入“h符号”来获得它的文档链接(这也会带你到源头)。