Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 消除阴谋集团文件中的重复_Haskell_Cabal - Fatal编程技术网

Haskell 消除阴谋集团文件中的重复

Haskell 消除阴谋集团文件中的重复,haskell,cabal,Haskell,Cabal,在我的.cabal文件的许多章节中,我经常有类似的属性。例如 Library x ... ghc-options: -O2 -Wall -fno-warn-missing-signatures -fwarn-incomplete-patterns -fno-warn-name-shadowing Executable y ... ghc-options: -O2 -Wall -fno-warn-missing-signa

在我的
.cabal
文件的许多章节中,我经常有类似的属性。例如

Library x
    ...
    ghc-options:
       -O2 -Wall -fno-warn-missing-signatures -fwarn-incomplete-patterns
       -fno-warn-name-shadowing

Executable y
    ...
    ghc-options:
       -O2 -Wall -fno-warn-missing-signatures -fwarn-incomplete-patterns
       -fno-warn-name-shadowing
保持它们的一致性既单调又容易出错。有更好的办法吗


更棘手的是,当字段相似但不完全相同时,例如,当我有几个具有共同构建依赖项但变化很小的可执行文件时。

我认为
cabal
不提供该功能。不久前我也在想这件事。您可以看到。

我编写了一个工具,可以更轻松地在Haskell中指定Cabal文件,这有助于处理此问题和其他一些问题


我认为目前没有什么好的解决方案。部分绕过此问题的两个选项是:(A)每个组件使用多个
ghc选项
字段(是的,这是可能的),从而使共享选项完全相同,差异更易于维护;和(B)从不包含冗余信息的其他来源生成您的阴谋集团文件。请参阅可能的副本