Haskell语言扩展:pragma与编译器标志?

时间:2015-11-18 00:12:58

标签: haskell haskell-stack

要在项目的所有文件中使用UnicodeSyntax等语言扩展名,有两个选项:

  • 每个源文件中的pragma: {-# LANGUAGE UnicodeSyntax #-}
  • extensions: UnicodeSyntax文件的每个部分(库,可执行文件,测试版)中添加.cabal

是否有任何理由或最佳做法可以选择其中一种?

我使用stack及其标准new-template来处理简单包裹。

1 个答案:

答案 0 :(得分:4)

就个人而言,我总是列出使用它们的每个文件中的所有语言扩展。然后,您可以通过查看代码确切地确定特定代码片段正在使用的扩展名。这意味着我可以立即告诉,例如,这个代码是否与模板Haskell有关。而且我不必查看任何相关文件来解决这个问题。这也意味着我可以从命令行手动编译该模块,而无需记住我需要的扩展名。

我想有一些事情可以说是能够浏览Cabal规范以查看特定包使用的扩展名。