Drop support for parentheses in GADT constructors
See user manual 6.4.7.1. Formal syntax for GADTs
Vlad is suggesting that we do not support parens, thus striking out the production
prefix_gadt_body ::= '(' prefix_gadt_body ')'
So you can't write
data T where
T1 :: (Int -> T)
T2 :: (forall a. a -> T)
T3 :: forall a. (a -> T)
T4 :: forall a. (a -> (T))
GHC currently allows all four, simply discarding the parens entirely, very early in parsing, specifically in splitLHsGadtTy
.