GHC 6.6 was a bit more generous than GHC 6.8, but erroneously so. Specifically, GHC 6.8 and all subsequent versions require that when you pattern match on a value of GADT type,
· the type of the scrutinee
· the type of the result of the case
· the types of any free variables used inside the case alternatives
are all completely known ("rigid" in GHC's terminology) at the case expression.
The easiest way to make a variable have a rigid type is to give it a type signature.
I don't expect to revert to GHC 6.6's behaviour because I don't know how to do (robust, complete) type inference for that.
I'll add these remarks to the user manual.