GHC extensions to Haskell

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

  • GADTs
  • TypeFamilies
  • KindSignatures
  • PolyKinds
  • DataKinds
  • FunctionalDependencies
  • MultiParamTypeClasses
  • FlexibleInstances
  • FlexibleContexts
  • RankNTypes
  • TypeInType

As yet unclassified

A non-comprehensive list: