[Haskell-cafe] GADT pattern match in non-rigid context