X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FdeSugar%2FDsListComp.lhs;h=2292aedc12a46fbcbee517201108f9f913599059;hp=166bfc244c54ec31ab5f0fa9fd7d444cf773c04d;hb=7836349556deef66f1b1d06fe8e9c7c0b841f0d0;hpb=3e09edbc9e9c2bd8b0fddc946ce28014881cbfa1 diff --git a/compiler/deSugar/DsListComp.lhs b/compiler/deSugar/DsListComp.lhs index 166bfc2..2292aed 100644 --- a/compiler/deSugar/DsListComp.lhs +++ b/compiler/deSugar/DsListComp.lhs @@ -92,12 +92,12 @@ dsInnerListComp (stmts, bndrs) = do -- Given such a statement it gives you back an expression representing how to compute the transformed -- list and the tuple that you need to bind from that list in order to proceed with your desugaring dsTransformStmt :: Stmt Id -> DsM (CoreExpr, LPat Id) -dsTransformStmt (TransformStmt stmts binders usingExpr maybeByExpr) = do - (expr, binders_tuple_type) <- dsInnerListComp (stmts, binders) - usingExpr' <- dsLExpr usingExpr +dsTransformStmt (TransformStmt stmts binders usingExpr maybeByExpr) + = do { (expr, binders_tuple_type) <- dsInnerListComp (stmts, binders) + ; usingExpr' <- dsLExpr usingExpr - using_args <- - case maybeByExpr of + ; using_args <- + case maybeByExpr of Nothing -> return [expr] Just byExpr -> do byExpr' <- dsLExpr byExpr @@ -108,10 +108,9 @@ dsTransformStmt (TransformStmt stmts binders usingExpr maybeByExpr) = do return [Lam tuple_binder byExprWrapper, expr] - let inner_list_expr = mkApps usingExpr' ((Type binders_tuple_type) : using_args) - - let pat = mkBigLHsVarPatTup binders - return (inner_list_expr, pat) + ; let inner_list_expr = mkApps usingExpr' ((Type binders_tuple_type) : using_args) + pat = mkBigLHsVarPatTup binders + ; return (inner_list_expr, pat) } -- This function factors out commonality between the desugaring strategies for GroupStmt. -- Given such a statement it gives you back an expression representing how to compute the transformed