f () = do { x :: Bool <- return True; ... }
For some reason the production for 'pat' required 'infixexp' on the
LHS of a do-notation binding. This patch makes it an 'exp', which
thereby allows an expression with a type sig.
Happily, there are no new shift-reduce errors, so I don't think this
will break anything else.
-- Bangs inside are parsed as infix operator applications, so that
-- we parse them right when bang-patterns are off
pat :: { LPat RdrName }
-pat : infixexp {% checkPattern $1 }
+pat : exp {% checkPattern $1 }
| '!' aexp {% checkPattern (LL (SectionR (L1 (HsVar bang_RDR)) $2)) }
apat :: { LPat RdrName }