見せてやろうGHCが持つ真のチカラを！ GHCの言語拡張を一覧する方法について。

# 結論

以下のコマンドを実行すると、GHCで指定できる言語拡張の一覧を閲覧できます。

~~~
$ ghc --supported-languages
~~~

なお、詳しくはこちらを参照のこと。

* <http://haskell.org/haskellwiki/GHC>

# 僕の環境における言語拡張一覧

173個あるようです(GHC-7.6.3)。

~~~
Haskell98
Haskell2010
Unsafe
Trustworthy
Safe
CPP
NoCPP
PostfixOperators
NoPostfixOperators
TupleSections
NoTupleSections
PatternGuards
NoPatternGuards
UnicodeSyntax
NoUnicodeSyntax
MagicHash
NoMagicHash
PolymorphicComponents
NoPolymorphicComponents
ExistentialQuantification
NoExistentialQuantification
KindSignatures
NoKindSignatures
EmptyDataDecls
NoEmptyDataDecls
ParallelListComp
NoParallelListComp
TransformListComp
NoTransformListComp
MonadComprehensions
NoMonadComprehensions
ForeignFunctionInterface
NoForeignFunctionInterface
UnliftedFFITypes
NoUnliftedFFITypes
InterruptibleFFI
NoInterruptibleFFI
CApiFFI
NoCApiFFI
GHCForeignImportPrim
NoGHCForeignImportPrim
LiberalTypeSynonyms
NoLiberalTypeSynonyms
Rank2Types
NoRank2Types
RankNTypes
NoRankNTypes
ImpredicativeTypes
NoImpredicativeTypes
TypeOperators
NoTypeOperators
ExplicitNamespaces
NoExplicitNamespaces
RecursiveDo
NoRecursiveDo
DoRec
NoDoRec
Arrows
NoArrows
ParallelArrays
NoParallelArrays
TemplateHaskell
NoTemplateHaskell
QuasiQuotes
NoQuasiQuotes
ImplicitPrelude
NoImplicitPrelude
RecordWildCards
NoRecordWildCards
NamedFieldPuns
NoNamedFieldPuns
RecordPuns
NoRecordPuns
DisambiguateRecordFields
NoDisambiguateRecordFields
OverloadedStrings
NoOverloadedStrings
GADTs
NoGADTs
GADTSyntax
NoGADTSyntax
ViewPatterns
NoViewPatterns
TypeFamilies
NoTypeFamilies
BangPatterns
NoBangPatterns
MonomorphismRestriction
NoMonomorphismRestriction
NPlusKPatterns
NoNPlusKPatterns
DoAndIfThenElse
NoDoAndIfThenElse
RebindableSyntax
NoRebindableSyntax
ConstraintKinds
NoConstraintKinds
PolyKinds
NoPolyKinds
DataKinds
NoDataKinds
InstanceSigs
NoInstanceSigs
MonoPatBinds
NoMonoPatBinds
ExplicitForAll
NoExplicitForAll
AlternativeLayoutRule
NoAlternativeLayoutRule
AlternativeLayoutRuleTransitional
NoAlternativeLayoutRuleTransitional
DatatypeContexts
NoDatatypeContexts
NondecreasingIndentation
NoNondecreasingIndentation
RelaxedLayout
NoRelaxedLayout
TraditionalRecordSyntax
NoTraditionalRecordSyntax
LambdaCase
NoLambdaCase
MultiWayIf
NoMultiWayIf
MonoLocalBinds
NoMonoLocalBinds
RelaxedPolyRec
NoRelaxedPolyRec
ExtendedDefaultRules
NoExtendedDefaultRules
ImplicitParams
NoImplicitParams
ScopedTypeVariables
NoScopedTypeVariables
PatternSignatures
NoPatternSignatures
UnboxedTuples
NoUnboxedTuples
StandaloneDeriving
NoStandaloneDeriving
DeriveDataTypeable
NoDeriveDataTypeable
DeriveFunctor
NoDeriveFunctor
DeriveTraversable
NoDeriveTraversable
DeriveFoldable
NoDeriveFoldable
DeriveGeneric
NoDeriveGeneric
DefaultSignatures
NoDefaultSignatures
TypeSynonymInstances
NoTypeSynonymInstances
FlexibleContexts
NoFlexibleContexts
FlexibleInstances
NoFlexibleInstances
ConstrainedClassMethods
NoConstrainedClassMethods
MultiParamTypeClasses
NoMultiParamTypeClasses
FunctionalDependencies
NoFunctionalDependencies
GeneralizedNewtypeDeriving
NoGeneralizedNewtypeDeriving
OverlappingInstances
NoOverlappingInstances
UndecidableInstances
NoUndecidableInstances
IncoherentInstances
NoIncoherentInstances
PackageImports
NoPackageImports
~~~