使用 Haskell Stack 时应该使用哪个 -ghc-options?

Which -ghc-options should I use when using Haskell Stack?

我对应该将 GHC 编译选项放在 Haskell Stack 项目中的什么位置感到困惑。通过查看文档,我认为我需要使用 ghc-options,但是 哪个 ?有两个:

我认为为编译器指定一个选项会很简单,但这让我很困惑。 preferred/accepted/de-facto/ 是什么?使用Stack构建项目时如何指定GHC选项?

我有兴趣从堆栈人员那里听到更多官方信息,但我们在我们的项目中使用 cabal 和堆栈,对我们来说答案只是范围之一....

我们有很多子项目,每个都有自己的 .cabal 文件。我们有一个堆栈文件,其中提供了有关如何构建整个项目的信息。与整个项目相关的任何内容(可能 -O2 或其他内容)都会进入堆栈文件。

任何只属于一个项目(也许是一个杂散的 -fno-warn-unused-do-bind)的东西都会放在单独的 .cabal 文件中。

有时我们确实有一个项目的个人 stack.yaml,虽然我们可以把标志放在里面,但最好把它放在 .cabal 文件中,因为它被总体 stack.yaml.