%
+% (c) The University of Glasgow 2006
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-\section[HsExpr]{Abstract Haskell syntax: expressions}
+
+HsExpr: Abstract Haskell syntax: expressions
\begin{code}
module HsExpr where
#include "HsVersions.h"
-- friends:
-import HsDecls ( HsGroup )
-import HsPat ( LPat )
-import HsLit ( HsLit(..), HsOverLit )
-import HsTypes ( LHsType, PostTcType )
-import HsImpExp ( isOperator, pprHsVar )
-import HsBinds ( HsLocalBinds, DictBinds, isEmptyLocalBinds,
- ExprCoFn, pprCoFn )
+import HsDecls
+import HsPat
+import HsLit
+import HsTypes
+import HsImpExp
+import HsBinds
-- others:
-import Type ( Type, pprParendType )
-import Var ( TyVar, Id )
-import Name ( Name )
-import BasicTypes ( IPName, Boxity, tupleParens, Arity, Fixity(..) )
-import SrcLoc ( Located(..), unLoc )
+import Var
+import Name
+import BasicTypes
+import SrcLoc
import Outputable
import FastString
\end{code}
Everything from here on appears only in typechecker output.
\begin{code}
- | HsCoerce ExprCoFn -- TRANSLATION
+ | HsWrap HsWrapper -- TRANSLATION
(HsExpr id)
type PendingSplice = (Name, LHsExpr Id) -- Typechecked splices, waiting to be
ppr_expr (HsSCC lbl expr)
= sep [ ptext SLIT("_scc_") <+> doubleQuotes (ftext lbl), pprParendExpr expr ]
-ppr_expr (HsCoerce co_fn e) = pprCoFn (ppr_expr e) co_fn
+ppr_expr (HsWrap co_fn e) = pprHsWrapper (ppr_expr e) co_fn
ppr_expr (HsType id) = ppr id
ppr_expr (HsSpliceE s) = pprSplice s