Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/7028041739973c3dc17b23a98c65c892f41f0647 >--------------------------------------------------------------- commit 7028041739973c3dc17b23a98c65c892f41f0647 Merge: aca4fde... 5fca973... Author: Simon Peyton Jones <[email protected]> Date: Wed May 4 16:37:08 2011 +0100 Merge branch monad-comp onto master This patch implements monad comprehensions, Trac #4370. Thanks to Nils Schweinsberg for doing most of the heavy lifting. I did quite a lot of related refactoring as well. Notably: * Combined TransformStmt and GroupStmt into a single constructor TransStmt; they share a lot of code. I also made TransStmt into a record; it has a lot of fields. * Remove the "result expression" field of HsDo, and instead implement LastStmt, which is expected to be at the end of a list of Stmts * Generalise and tidy up the typechecking of monad comprehensions * Do-notation in arrows is marked with HsStmtContext = ArrowExpr * tcMDoStmt (which was only used for arrows) is moved to TcArrows, and renamed tcArrDoStmt * Improved documentation in the user manual * Lots of other minor changes compiler/deSugar/Check.lhs | 6 +- compiler/deSugar/Coverage.lhs | 83 +++--- compiler/deSugar/DsArrows.lhs | 15 +- compiler/deSugar/DsExpr.lhs | 215 +++---------- compiler/deSugar/DsGRHSs.lhs | 4 +- compiler/deSugar/DsListComp.lhs | 535 ++++++++++++++++++++++----------- compiler/deSugar/DsMeta.hs | 16 +- compiler/hsSyn/Convert.lhs | 15 +- compiler/hsSyn/HsExpr.lhs | 342 ++++++++++++++-------- compiler/hsSyn/HsLit.lhs | 18 +- compiler/hsSyn/HsPat.lhs | 4 +- compiler/hsSyn/HsUtils.lhs | 68 +++-- compiler/main/DynFlags.hs | 6 +- compiler/main/HscMain.lhs | 2 +- compiler/parser/Lexer.x | 1 + compiler/parser/Parser.y.pp | 20 +- compiler/parser/RdrHsSyn.lhs | 46 +-- compiler/prelude/PrelNames.lhs | 37 ++- compiler/rename/RnBinds.lhs | 6 +- compiler/rename/RnExpr.lhs | 425 +++++++++++++++++--------- compiler/typecheck/TcArrows.lhs | 93 +++++-- compiler/typecheck/TcExpr.lhs | 28 ++- compiler/typecheck/TcGenDeriv.lhs | 15 +- compiler/typecheck/TcHsSyn.lhs | 56 ++-- compiler/typecheck/TcMatches.lhs | 603 +++++++++++++++++++++++++------------ compiler/typecheck/TcPat.lhs | 26 +- compiler/typecheck/TcRnDriver.lhs | 51 ++-- compiler/typecheck/TcRnMonad.lhs | 5 - compiler/typecheck/TcRnTypes.lhs | 2 + compiler/typecheck/TcSMonad.lhs | 3 +- compiler/typecheck/TcUnify.lhs | 2 +- docs/users_guide/flags.xml | 6 + docs/users_guide/glasgow_exts.xml | 228 ++++++++++++++ 33 files changed, 1938 insertions(+), 1044 deletions(-) _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
