X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=ghc%2Fcompiler%2FdeSugar%2FDsListComp.lhs;h=ebe08c61892e7efcd699c4913668240ec2e09bf0;hb=f7d468d18f79af1baa6ff6985699844d921912d0;hp=929dd3e4b303fea462a96960d1f223da33fc149f;hpb=2c6d73e2ca9a545c4295c6f532cd3612e7fd3d8d;p=ghc-hetmet.git diff --git a/ghc/compiler/deSugar/DsListComp.lhs b/ghc/compiler/deSugar/DsListComp.lhs index 929dd3e..ebe08c6 100644 --- a/ghc/compiler/deSugar/DsListComp.lhs +++ b/ghc/compiler/deSugar/DsListComp.lhs @@ -12,8 +12,7 @@ import {-# SOURCE #-} DsExpr ( dsExpr, dsLet ) import BasicTypes ( Boxity(..) ) import HsSyn ( OutPat(..), HsExpr(..), Stmt(..), HsMatchContext(..), HsDoContext(..) ) -import TcHsSyn ( TypecheckedStmt, TypecheckedPat, TypecheckedHsExpr ) -import DsHsSyn ( outPatType ) +import TcHsSyn ( TypecheckedStmt, TypecheckedPat, TypecheckedHsExpr, outPatType ) import CoreSyn import DsMonad -- the monadery used in the desugarer @@ -158,7 +157,7 @@ deListComp [ResultStmt expr locn] list -- Figure 7.4, SLPJ, p 135, rule C above returnDs (mkConsExpr (exprType core_expr) core_expr list) -- Non-last: must be a guard -deListComp (ExprStmt guard locn : quals) list -- rule B above +deListComp (ExprStmt guard ty locn : quals) list -- rule B above = dsExpr guard `thenDs` \ core_guard -> deListComp quals list `thenDs` \ core_rest -> returnDs (mkIfThenElse core_guard core_rest list) @@ -280,7 +279,7 @@ dfListComp c_id n_id [ResultStmt expr locn] returnDs (mkApps (Var c_id) [core_expr, Var n_id]) -- Non-last: must be a guard -dfListComp c_id n_id (ExprStmt guard locn : quals) +dfListComp c_id n_id (ExprStmt guard ty locn : quals) = dsExpr guard `thenDs` \ core_guard -> dfListComp c_id n_id quals `thenDs` \ core_rest -> returnDs (mkIfThenElse core_guard core_rest (Var n_id))