Remove unused functions (applyToPair, applyToFst, applyToSnd)
[ghc-hetmet.git] / compiler / hsSyn / HsExpr.lhs
index 23b6b13..9a6a4a8 100644 (file)
@@ -394,10 +394,10 @@ ppr_expr (ExplicitTuple exprs boxity)
   = tupleParens boxity (sep (punctuate comma (map ppr_lexpr exprs)))
 
 ppr_expr (RecordCon con_id con_expr rbinds)
-  = pp_rbinds (ppr con_id) rbinds
+  = hang (ppr con_id) 2 (ppr rbinds)
 
 ppr_expr (RecordUpd aexp rbinds _ _ _)
-  = pp_rbinds (pprParendExpr aexp) rbinds
+  = hang (pprParendExpr aexp) 2 (ppr rbinds)
 
 ppr_expr (ExprWithTySig expr sig)
   = hang (nest 2 (ppr_lexpr expr) <+> dcolon)
@@ -483,17 +483,19 @@ pprParendExpr expr
        -- I think that is usually (always?) right
     in
     case unLoc expr of
-      HsLit l          -> pp_as_was
-      HsOverLit l      -> pp_as_was
-      HsVar _          -> pp_as_was
-      HsIPVar _                -> pp_as_was
-      ExplicitList _ _  -> pp_as_was
-      ExplicitPArr _ _  -> pp_as_was
-      ExplicitTuple _ _        -> pp_as_was
-      HsPar _          -> pp_as_was
-      HsBracket _      -> pp_as_was
-      HsBracketOut _ []        -> pp_as_was
-      _                        -> parens pp_as_was
+      HsLit l             -> pp_as_was
+      HsOverLit l         -> pp_as_was
+      HsVar _             -> pp_as_was
+      HsIPVar _                   -> pp_as_was
+      ExplicitList _ _     -> pp_as_was
+      ExplicitPArr _ _     -> pp_as_was
+      ExplicitTuple _ _           -> pp_as_was
+      HsPar _             -> pp_as_was
+      HsBracket _         -> pp_as_was
+      HsBracketOut _ []           -> pp_as_was
+      HsDo sc _ _ _
+       | isListCompExpr sc -> pp_as_was
+      _                           -> parens pp_as_was
 
 isAtomicHsExpr :: HsExpr id -> Bool    -- A single token
 isAtomicHsExpr (HsVar {})     = True
@@ -582,17 +584,7 @@ data HsCmdTop id
 %************************************************************************
 
 \begin{code}
-data HsRecordBinds id = HsRecordBinds [(Located id, LHsExpr id)]
-
-recBindFields :: HsRecordBinds id -> [id]
-recBindFields (HsRecordBinds rbinds) = [unLoc field | (field,_) <- rbinds]
-
-pp_rbinds :: OutputableBndr id => SDoc -> HsRecordBinds id -> SDoc
-pp_rbinds thing (HsRecordBinds rbinds)
-  = hang thing 
-        4 (braces (pprDeeperList sep (punctuate comma (map (pp_rbind) rbinds))))
-  where
-    pp_rbind (v, e) = hsep [pprBndr LetBind (unLoc v), char '=', ppr e]
+type HsRecordBinds id = HsRecFields id (LHsExpr id)
 \end{code}
 
 
@@ -694,11 +686,9 @@ pprMatch ctxt (Match pats maybe_ty grhss)
 
 pprGRHSs :: OutputableBndr id => HsMatchContext id -> GRHSs id -> SDoc
 pprGRHSs ctxt (GRHSs grhss binds)
-  = pprDeeper
-    (vcat (map (pprGRHS ctxt . unLoc) grhss)
-      $$
-     if isEmptyLocalBinds binds then empty
-     else text "where" $$ nest 4 (pprBinds binds))
+  = vcat (map (pprGRHS ctxt . unLoc) grhss)
+ $$ if isEmptyLocalBinds binds then empty
+                               else text "where" $$ nest 4 (pprBinds binds)
 
 pprGRHS :: OutputableBndr id => HsMatchContext id -> GRHS id -> SDoc
 
@@ -938,7 +928,12 @@ data HsStmtContext id
 isDoExpr :: HsStmtContext id -> Bool
 isDoExpr DoExpr      = True
 isDoExpr (MDoExpr _) = True
-isDoExpr other       = False
+isDoExpr _           = False
+
+isListCompExpr :: HsStmtContext id -> Bool
+isListCompExpr ListComp = True
+isListCompExpr PArrComp = True
+isListCompExpr _        = False
 \end{code}
 
 \begin{code}