Sat Aug 6 14:18:45 CEST 2011

Generalized Algebraic Data Types

Soundbyte: an ADT constructor can't have types such as T x -> T y,
which are useful (necessary?) to represent the typed lambda calculus.

( Note, it is possible to use type *classes* to do this: C repr =>
  repr x -> repr y, but that's a different story. )

In what sense exactly is a GADT generalized?

[1] http://en.wikipedia.org/wiki/Generalized_algebraic_data_type