• simonpj@microsoft.com's avatar
    Improvements to record puns, wildcards · d64022dc
    simonpj@microsoft.com authored
    * Make C { A.a } work with punning, expanding to C { A.a = a }
    * Make it so that, with -fwarn-unused-matches, 
            f (C {..}) = x
      does not complain about the bindings introduced by the "..".
    * Make -XRecordWildCards implies -XDisambiguateRecordFields.
    * Overall refactoring of RnPat, which had become very crufty. 
      In particular, there is now a monad, CpsRn, private to RnPat,
      which deals with the cps-style plumbing.  This is why so many
      lines of RnPat have changed.
    * Refactor the treatment of renaming of record fields into two passes
    	- rnHsRecFields1, used both for patterns and expressions,
    	     which expands puns, wild-cards
      	- a local renamer in RnPat for fields in patterns
    	- a local renamer in RnExpr for fields in construction and update
      This make it all MUCH easier to understand
    * Improve documentation of record puns, wildcards, and disambiguation
TcPat.lhs 41.3 KB