We've always intended to allow you to use GADT syntax for
data families:
data instance T [a] where
T1 :: a -> T [a]
and indeed to allow data instances to *be* GADTs
data intsance T [a] where
T1 :: Int -> T [Int]
T2 :: a -> b -> T [(a,b)]
This patch fixes the renamer and type checker to allow this.