Düzenli olarak çok fazla dil özelliği kullanan bir Haskell projem var ve her kaynak dosyasının aynı olması için dil uzantısı bloğunun olmasını istiyorum. İşte aynı genelinde modüller olmak istiyorum, bir liste, bazı kötü bir uygulamadır için belkihaskell - kendi grup LANGUAGE pragmalarını oynatmanın herhangi bir yolu?
{-# 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 #-}
, ama ben genellikle kod yazmak "Haskell +" bir parçası olmak için dil uzantıları düşünün. Ve. Örneğin, NoImplicitPrelude
dili önemli ölçüde değiştirir ve tüm modüller için tek tip olmasını istiyorum.
Soru: Dil bloğunu her dosyaya kopyala yapıştırmadan, bunu nasıl sağlayabilirim? Sık sık yeni bir dil özelliğini nasıl öğrendiğimi, A
modülüne ekledikten sonra B
modülünde çalışmaya başladığımdan rahatsız edici olur ve dil bloğunu A
modülünden kopyalamam gerektiğini fark eder.
Bilginize bir #include
ile CPP
Pragma değil hile yapar! Şimdiden teşekkürler.
öncesi Burada merak konusu ilgili soru: http://stackoverflow.com/questions/6005382/haskell-ways-to-have-a-clean-import-block-re-exporting-modules-multiple-im – gatoatigrado
Varsayılan uzantılar listenizde OverlappingInstances'. – ehird
@ehird, iyi bir nokta; arada sırada kullanılır. – gatoatigrado