[Haskell-cafe] GADT and instance deriving