任意の .hs ファイルについて、依存する言語拡張を次のように指定できます。
{-# LANGUAGE Foo, Bar, Baz #-}
cabal 化されたプロジェクトは、.cabal ファイルでプロジェクトごとに言語拡張を指定することもできます。
extensions: Foo, Bar, Baz
これらのうち、「ベスト プラクティス」と見なされるのはどれですか? パッケージがどのコンパイラと互換性があるかを文書化する形式として、使用されているすべての拡張子を .cabal ファイルにリストする必要がありますか? それとも、どのファイルがどの拡張子に依存しているかを明確にするために、すべての拡張子をファイルごとに記録する必要がありますか? 両方の場所で広範囲に文書化するのはどうですか? それとも、ベストプラクティスはその中間ですか?