获得顶级声明列表的更好方法

时间:2017-05-03 02:47:15

标签: haskell

我在一个名字相似的文件中有一个名为EditorTest的模块。

导入一些模块。它也有一些声明,就像任何Haskell模块一样。

我想以编程方式获取该模块上下文中顶级可用声明的列表。

到目前为止,我只能使用hint来获取此模块的顶级本地声明。那很好,我想我可以递归导入(等等到这些模块等),收集它们的列表,然后使用提示获取所有可用的声明名称...但如果可能的话,我是在追求更简单的方法来查找给定模块中的可用声明。我认为Haskell的API应该有一些方法来做到这一点。

有这样的事吗?

1 个答案:

答案 0 :(得分:0)

自我回答,因为它已经有一段时间了,而且我很久以前就已经摒弃了一个概念验证,所以我会把它放在其他地方,即使它相当混乱。

因此,假设我们将此文件设为TestModule.hs

module TestModule (g, h) where

import Data.List as L

f = head

g = f [f]

h = L.map

然后,可以使用以下代码来展示我们如何使用Hint的{​​{1}}模块和Language.Haskell.Interpreter模块来提取顶级声明并使用它们。 {1}}包:

Language.Haskell.Exts.SrcLoc