[commit: ghc] master: This big patch re-factors the way in which arrow-syntax is handled (ba56d20)

Simon Peyton Jones <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/ba56d20d767f0425f6f7515fa9c78b186589b896

>---------------------------------------------------------------

commit ba56d20d767f0425f6f7515fa9c78b186589b896
Author: Simon Peyton Jones <[email protected]>
Date:   Wed Oct 3 11:16:22 2012 +0100

    This big patch re-factors the way in which arrow-syntax is handled
    
    All the work was done by Dan Winograd-Cort.
    
    The main thing is that arrow comamnds now have their own
    data type HsCmd (defined in HsExpr).  Previously it was
    punned with the HsExpr type, which was jolly confusing,
    and made it hard to do anything arrow-specific.
    
    To make this work, we now parameterise
      * MatchGroup
      * Match
      * GRHSs, GRHS
      * StmtLR and friends
    over the "body", that is the kind of thing they
    enclose.  This "body" parameter can be instantiated to
    either LHsExpr or LHsCmd respectively.
    
    Everything else is really a knock-on effect; there should
    be no change (yet!) in behaviour.  But it should be a sounder
    basis for fixing bugs.

 compiler/deSugar/Coverage.lhs         |   78 +++---
 compiler/deSugar/DsArrows.lhs         |  120 +++++-----
 compiler/deSugar/DsExpr.lhs           |   16 +-
 compiler/deSugar/DsGRHSs.lhs          |   22 +-
 compiler/deSugar/DsListComp.lhs       |   40 ++--
 compiler/deSugar/DsMeta.hs            |   44 ++--
 compiler/deSugar/DsUtils.lhs          |   35 ---
 compiler/deSugar/Match.lhs            |    6 +-
 compiler/deSugar/Match.lhs-boot       |    4 +-
 compiler/hsSyn/Convert.lhs            |   18 +-
 compiler/hsSyn/HsBinds.lhs            |    4 +-
 compiler/hsSyn/HsExpr.lhs             |  431 +++++++++++++++++++++------------
 compiler/hsSyn/HsExpr.lhs-boot        |   28 ++-
 compiler/hsSyn/HsUtils.lhs            |   76 +++---
 compiler/main/HscMain.hs              |    6 +-
 compiler/parser/Parser.y.pp           |   58 +++---
 compiler/parser/RdrHsSyn.lhs          |   99 +++++++-
 compiler/rename/RnBinds.lhs           |   69 ++++--
 compiler/rename/RnEnv.lhs             |   40 ++--
 compiler/rename/RnExpr.lhs            |  406 ++++++++++++++++---------------
 compiler/rename/RnExpr.lhs-boot       |   16 +-
 compiler/rename/RnPat.lhs             |    4 +-
 compiler/rename/RnTypes.lhs           |   10 +-
 compiler/typecheck/Inst.lhs           |    5 +-
 compiler/typecheck/TcArrows.lhs       |   69 +++---
 compiler/typecheck/TcBinds.lhs        |    6 +-
 compiler/typecheck/TcExpr.lhs         |    9 +-
 compiler/typecheck/TcGenDeriv.lhs     |   12 +-
 compiler/typecheck/TcHsSyn.lhs        |  182 +++++++++-----
 compiler/typecheck/TcMatches.lhs      |  141 ++++++-----
 compiler/typecheck/TcMatches.lhs-boot |   11 +-
 compiler/typecheck/TcRnDriver.lhs     |   18 +-
 32 files changed, 1177 insertions(+), 906 deletions(-)


Diff suppressed because of size. To see it, use:

    git show ba56d20d767f0425f6f7515fa9c78b186589b896
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.