We hope that extensions or variants of the language may appear, incorporating experimental features.
– Haskell Report version 1.0, April 1990
If you’re new to using GHC language extensions, start here:
First extensions
We recommend these first – some of them because they are very common and necessary; some because they make some bit of syntax a little nicer; some because they make something explicit for learning purposes that we find invaluable. All are safe to use.
Type-level fun
ExplicitForAll
GADTs
TypeFamilies
KindSignatures
PolyKinds
DataKinds
FunctionalDependencies
MultiParamTypeClasses
FlexibleInstances
FlexibleContexts
RankNTypes
TypeInType
Template Haskell
As yet unclassified
A non-comprehensive list:
ExtendedDefaultRules
MagicHash
MonoLocalBinds
MultiWayIf
TypeOperators
Deprecated
You are not likely to need these extensions; we explain them only for historical interest.
Getting a list from GHC
Try running this command in your terminal:
$ ghc --supported-extensions | grep -v "^No" | column