[Haskell-cafe] GADTs, type classes, existentials