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.





















































