我有一个大的Haskell文件(大约3000行)和许多导入(大约150行)。我正试图将其分解为更小的文件,以提高构建并行性,从而缩短构建时间。
-
很多
-
更高级的选项是创建一个CommonImports.hs文件,在其中导入所需的所有内容,然后重新导出ala
module CommonImports (module X) where import Foo as X
. 这在很大程度上是可行的,但有大约50个进口产品是合格的。据我所知,目前没有办法再出口/再进口保持原来的资格。这可以通过大量的重构来实现,在重构中我删除所有的限定条件并解决任何名称冲突。
-
#include
特色。我以前就用过这个,而且很管用,甚至保持合格的进口。但是有一些不幸的警告:ghci和ghcid没有注意到
#包括
d文件更改。我试着用一些帮助来克服它:
import qualified Language.Haskell.TH.Syntax as TH
#include "./relative/../path/to/File.cpp.hs"
$(TH.addDependentFile "/absolute/path/to/File.cpp.hs" >> pure [])
https://ghc.haskell.org/trac/ghc/ticket/4900#comment:81
GHCid是我工作流程的核心,所以这很不幸。
我错过了你们中的一些人可能使用的其他方法吗?也许有些人有较小的缺点或不同的取舍?