This patch implements a part of GHC Proposal 229: "Simplify parsing of (~) and (!)" that covers five operators: (!)
, (~)
, (@)
, ($)
, and ($$)
.
Based on surrounding whitespace, these operators are disambiguated into bang patterns, lazy patterns, strictness annotations, and type applications, splices, and typed splices.
This patch doesn't cover the (-)
operator or the -Woperator-whitespace
warning, which are left as future work.