因此,我的最终目标是通过确保项目导入的所有实体都存在于其声称使用的版本中来评估cabal文件中依赖项的准确性. 一个好的开始是找到单个源文件使用的所有导入实体的列表,可选地提
一个好的开始是找到单个源文件使用的所有导入实体的列表,可选地提供有关它们来自何处的信息.
我现在愿意忽略类实例的情况,因为检测它们的使用并不是那么简单.
理想的答案是指向一个完全如此的工具,但我也会接受一个答案,指出我需要自己编写一个资源(GHC收集这些信息吗?它会把它转移到哪里吗?可以吗?被说服这样做?)
最终, haskell-names应该能够以最小的努力做这样的事情.需要注意的是,您需要重新“编译”您使用haskell-names自己的“编译器”引用的每个包,以生成接口文件.在未来,我还计划为所有hackage包分发预编译的接口(可能来自via hackage本身).
现在haskell-names正在进行中,还无法编译.
GHC API的优势在于,如果已安装软件包,则已有接口文件,但我不确定它是否可以访问导入实体列表.