Printing of Core syntax
\begin{code}
-{-# OPTIONS_GHC -w #-}
+{-# OPTIONS -w #-}
-- The above warning supression flag is a temporary kludge.
-- While working on this module you are encouraged to remove it and fix
-- any warnings in the module. See
--- http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions#Warnings
+-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
-- for details
module PprCore (
nest 2 (pprCoreExpr rhs),
ptext SLIT("} in"),
pprCoreExpr body ]
--}
ppr_expr add_par (Let bind@(NonRec val_bdr rhs) expr@(Let _ _))
= add_par
ptext SLIT("} in")])
$$
pprCoreExpr expr)
+-}
--- general case (recursive case, too)
+-- General case (recursive case, too)
ppr_expr add_par (Let bind expr)
= add_par $
- sep [hang (ptext keyword) 2 (ppr_bind bind),
- hang (ptext SLIT("} in ")) 2 (pprCoreExpr expr)]
+ sep [hang (ptext keyword) 2 (ppr_bind bind <+> ptext SLIT("} in")),
+ pprCoreExpr expr]
where
keyword = case bind of
- Rec _ -> SLIT("__letrec {")
+ Rec _ -> SLIT("letrec {")
NonRec _ _ -> SLIT("let {")
ppr_expr add_par (Note (SCC cc) expr)