Tengo un proyecto Haskell que regularmente usa muchas funciones de idioma, y quiero que el bloque de extensión de idioma para cada archivo fuente sea el mismo. He aquí una lista,haskell - ¿alguna forma de hacer rodar su propio grupo de pragmas de IDIOMA?
{-# 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 #-}
Tal vez para algunos es una mala práctica, pero considero extensiones de lenguaje para ser parte de la "Haskell +" que yo suelo escribir código. Y, quiero que para ser los mismos módulos de ancho. Por ejemplo, el NoImplicitPrelude
cambia el idioma dramáticamente, y quiero que sea uniforme para todos los módulos.
Pregunta: ¿Cómo puedo lograr esto, sin copiar y pegar el bloque de idioma en cada archivo? Se vuelve molesto cómo a menudo aprendo una nueva función de idioma, la agrego al módulo A
, luego comienzo a trabajar en el módulo B
, y me doy cuenta de que tengo que copiar el bloque de idioma del módulo A
.
Para su información el CPP
pragma con un #include
hace no hacer el truco! Gracias por adelantado.
pre pregunta relacionada con el tema aquí: http://stackoverflow.com/questions/6005382/haskell-ways-to-have-a-clean-import-block-re-exporting-modules-multiple-im – gatoatigrado
Sugeriría encarecidamente que no incluya ' OverlappingInstances' en su lista de extensiones predeterminadas. – ehird
@ehird, buen punto; sin embargo, se usa ocasionalmente. – gatoatigrado