[Haskell-cafe] GADTs and pattern matching