在考虑了这里始终明确导入模块的原因后(除了Prelude
),我试图遵守这个规范。但是,有时候这可能会很麻烦。是否有任何工具可以分析工作代码并给出完整的显式导入列表?
有一个-ddump-minimal-imports
标志可以用于ghc
。
结果将放置在文件(module-name).imports
中。
-fno-code
ghc选项在这里也很有帮助(避免代码生成阶段)。
cabal init
做得很好。 - ErikRcabal build --ghc-options="-ddump-minimal-imports -fno-code"
。从一个干净的状态开始,ar
会抱怨没有目标文件,但不管怎样,构建完成了所需的任务。 - Pablo#ifdef
条件编译时,存在某些名称可能不会出现在-ddump-minimal-imports
的输出中的可能性。 - Pablostack build --ghc-options="-ddump-minimal-imports"
。 - Chris Stryczynski
ghc -v
编译,你可以看到一个以Link Info: ((["-lHScryptohash-0.11.6", ....
开始的部分,其中包含所有导入的信息。但是这种方法存在一些问题... 首先,你需要提取信息并解析它,其次,它似乎包含了比你需要的更多的软件包。我因为这些问题而犹豫是否将此评论提升为答案,但也许这可以帮助你。 - jamshidh