저는 정기적으로 많은 언어 기능을 사용하는 Haskell 프로젝트를 가지고 있으며 각 소스 파일의 언어 확장 블록을 동일하게하고 싶습니다. 여기에 내가 그 같은에서 모듈이되고 싶어, 목록, 어떤 나쁜 습관이다에 어쩌면haskell - LANGUAGE pragma 그룹을 롤오버하는 방법은 무엇입니까?
{-# 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
에서 언어 블록을 복사해야한다는 것을 알게되어 짜증이납니다.
그냥 CPP
플러그 접속 식 #include
으로 을 입력하지 마십시오. 트릭을 수행하십시오! 미리 감사드립니다.
사전 여기에 관련된 많은 질문이 있습니다. http://stackoverflow.com/questions/6005382/haskell-ways-to-have-a-clean-import-block-re-exporting-modules-multiple-im – gatoatigrado
나는' OverlappingInstances'를 기본 확장 목록에 추가하십시오. – ehird
@ 새, 좋은 지적; 그것은 가끔씩 사용됩니다. – gatoatigrado