Соглашение об указании расширений в кабализированном проекте

Для любого файла .hs вы можете указать языковые расширения, на которые вы полагаетесь, следующим образом:

{-# LANGUAGE Foo, Bar, Baz #-}

Кабализованный проект также может указывать языковые расширения для каждого проекта основание в файле .cabal:

extensions: Foo, Bar, Baz

Что из этого считается "наилучшей практикой"? Должны ли все используемые расширения быть перечислены в файле .cabal как форма документирования, с какими компиляторами совместим ваш пакет? Или все расширения следует отмечать отдельно для каждого файла, чтобы было понятно, какие файлы от каких расширений зависят? А как насчет обширного документирования в обоих местах? Или это что-то среднее?

7
задан Dan Burton 2 March 2012 в 22:13
поделиться