Haskell has numerous extensions (Visit https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ for a comprehensive list of extensions and features), which can be used through {-# LANGUAGE <pragma> #-}. In this chapter, we will be looking at some advanced GHC extensions, and advanced language features such as type-families, rank-n-types, existential types and Generic Algebraic Data Types (GADT). The selection is offered from a usefulness point of view, and it is in no way complete, but it should be representative.




















































