私は定期的に多くの言語機能を使用するHaskellプロジェクトを持っており、各ソースファイルの言語拡張ブロックを同じにします。ここではリストはたぶんいくつかにそれは悪い習慣だが、私は言語拡張は、私は通常でコードを書く「ハスケル+」の一部であると考えています。そして、私はそれは同じ全体のモジュールになりたい、haskell - LANGUAGEプラグマのグループをロールする方法はありますか?
{-# LANGUAGE Arrows,
BangPatterns,
DefaultSignatures,
DeriveDataTypeable,
DeriveFunctor,
EmptyDataDecls,
FlexibleContexts,
FlexibleInstances,
FunctionalDependencies,
GADTs,
GeneralizedNewtypeDeriving,
MultiParamTypeClasses,
NamedFieldPuns,
NoImplicitPrelude,
NoMonomorphismRestriction,
OverlappingInstances,
RankNTypes,
RebindableSyntax,
ScopedTypeVariables,
StandaloneDeriving,
TemplateHaskell,
TypeFamilies,
TypeOperators,
TypeSynonymInstances,
UndecidableInstances,
ViewPatterns #-}
です。たとえば、NoImplicitPrelude
は言語を劇的に変更し、すべてのモジュールで統一したいと思います。
質問:言語ブロックを各ファイルにコピーして貼り付けることなく、これをどのように達成できますか?どのようにして新しい言語機能を学び、それをモジュールA
に追加してから、モジュールB
で作業を開始し、モジュールA
から言語ブロックをコピーしなければならないか分かりません。
#include
のプラグマはです!前もって感謝します。
前ここで深刻な関連の質問:http://stackoverflow.com/questions/6005382/haskell-ways-to-have-a-clean-import-block-re-exporting-modiple-im – gatoatigrado
私は、 OverlappingInstances'をデフォルトの拡張機能のリストに追加します。 – ehird
@ehird、良い点;それは時々使用されます。 – gatoatigrado