[Haskell-cafe] Need help understanding a GADT related error