 OCaml supports GADT natively since version 4.00.The GHC implementation provides support for existentially quantified type parameters and for local constraints.An early version of generalized algebraic data types were described by and based on pattern matching in ALF.