GADTs GADTs or Generalized Algebraic Data Types have already been explained elsewhere: The Original Paper The Purescript Approximation