initPprEnv,
pCon, pLit, pMajBndr, pMinBndr, pOcc, pPrim, pSCC, pStyle,
- pTy, pTyVar, pUVar, pUse,
+ pTy, pTyVarB, pTyVarO, pUVar, pUse,
NmbrEnv(..),
SYN_IE(NmbrM), initNmbr,
IMP_Ubiq(){-uitous-}
-import Pretty ( SYN_IE(Pretty) )
-import Unique ( initRenumberingUniques )
-import UniqFM ( emptyUFM )
+import Pretty ( Doc )
+import Outputable
+import Unique ( initRenumberingUniques, Unique )
+import UniqFM ( emptyUFM, UniqFM )
import Util ( panic )
+#if __GLASGOW_HASKELL__ >= 202
+IMPORT_DELOOPER(TyLoop)
+import PprStyle ( PprStyle )
+import Literal ( Literal )
+import Usage ( GenUsage, SYN_IE(Usage) )
+import {-# SOURCE #-} PrimOp (PrimOp)
+import {-# SOURCE #-} CostCentre ( CostCentre )
+#endif
+
\end{code}
For tyvars and uvars, we {\em do} normally use these homogenized
data PprEnv tyvar uvar bndr occ
= PE PprStyle -- stored for safe keeping
- (Literal -> Pretty) -- Doing these this way saves
- (Id -> Pretty) -- carrying around a PprStyle
- (PrimOp -> Pretty)
- (CostCentre -> Pretty)
+ (Literal -> Doc) -- Doing these this way saves
+ (Id -> Doc) -- carrying around a PprStyle
+ (PrimOp -> Doc)
+ (CostCentre -> Doc)
+
+ (tyvar -> Doc) -- to print tyvar binders
+ (tyvar -> Doc) -- to print tyvar occurrences
- (tyvar -> Pretty) -- to print tyvars
- (uvar -> Pretty) -- to print usage vars
+ (uvar -> Doc) -- to print usage vars
- (bndr -> Pretty) -- to print "major" val_bdrs
- (bndr -> Pretty) -- to print "minor" val_bdrs
- (occ -> Pretty) -- to print bindees
+ (bndr -> Doc) -- to print "major" val_bdrs
+ (bndr -> Doc) -- to print "minor" val_bdrs
+ (occ -> Doc) -- to print bindees
- (GenType tyvar uvar -> Pretty)
- (GenUsage uvar -> Pretty)
+ (GenType tyvar uvar -> Doc)
+ (GenUsage uvar -> Doc)
\end{code}
\begin{code}
initPprEnv
:: PprStyle
- -> Maybe (Literal -> Pretty)
- -> Maybe (Id -> Pretty)
- -> Maybe (PrimOp -> Pretty)
- -> Maybe (CostCentre -> Pretty)
- -> Maybe (tyvar -> Pretty)
- -> Maybe (uvar -> Pretty)
- -> Maybe (bndr -> Pretty)
- -> Maybe (bndr -> Pretty)
- -> Maybe (occ -> Pretty)
- -> Maybe (GenType tyvar uvar -> Pretty)
- -> Maybe (GenUsage uvar -> Pretty)
+ -> Maybe (Literal -> Doc)
+ -> Maybe (Id -> Doc)
+ -> Maybe (PrimOp -> Doc)
+ -> Maybe (CostCentre -> Doc)
+ -> Maybe (tyvar -> Doc)
+ -> Maybe (tyvar -> Doc)
+ -> Maybe (uvar -> Doc)
+ -> Maybe (bndr -> Doc)
+ -> Maybe (bndr -> Doc)
+ -> Maybe (occ -> Doc)
+ -> Maybe (GenType tyvar uvar -> Doc)
+ -> Maybe (GenUsage uvar -> Doc)
-> PprEnv tyvar uvar bndr occ
-- you can specify all the printers individually; if
-- you don't specify one, you get bottom
-initPprEnv sty l d p c tv uv maj_bndr min_bndr occ ty use
+initPprEnv sty l d p c tvb tvo uv maj_bndr min_bndr occ ty use
= PE sty
(demaybe l)
(demaybe d)
(demaybe p)
(demaybe c)
- (demaybe tv)
+ (demaybe tvb)
+ (demaybe tvo)
(demaybe uv)
(demaybe maj_bndr)
(demaybe min_bndr)
= PE (ppr sty) -- for a Literal
(ppr sty) -- for a DataCon
(ppr sty) -- for a PrimOp
- (\ cc -> ppStr (showCostCentre sty True cc)) -- CostCentre
+ (\ cc -> text (showCostCentre sty True cc)) -- CostCentre
(ppr sty) -- for a tyvar
(ppr sty) -- for a usage var
\end{code}
\begin{code}
-pStyle (PE s _ _ _ _ _ _ _ _ _ _ _) = s
-pLit (PE _ pp _ _ _ _ _ _ _ _ _ _) = pp
-pCon (PE _ _ pp _ _ _ _ _ _ _ _ _) = pp
-pPrim (PE _ _ _ pp _ _ _ _ _ _ _ _) = pp
-pSCC (PE _ _ _ _ pp _ _ _ _ _ _ _) = pp
-
-pTyVar (PE _ _ _ _ _ pp _ _ _ _ _ _) = pp
-pUVar (PE _ _ _ _ _ _ pp _ _ _ _ _) = pp
-
-pMajBndr (PE _ _ _ _ _ _ _ pp _ _ _ _) = pp
-pMinBndr (PE _ _ _ _ _ _ _ _ pp _ _ _) = pp
-pOcc (PE _ _ _ _ _ _ _ _ _ pp _ _) = pp
-
-pTy (PE _ _ _ _ _ _ _ _ _ _ pp _) = pp
-pUse (PE _ _ _ _ _ _ _ _ _ _ _ pp) = pp
+pStyle (PE s _ _ _ _ _ _ _ _ _ _ _ _) = s
+pLit (PE _ pp _ _ _ _ _ _ _ _ _ _ _) = pp
+pCon (PE _ _ pp _ _ _ _ _ _ _ _ _ _) = pp
+pPrim (PE _ _ _ pp _ _ _ _ _ _ _ _ _) = pp
+pSCC (PE _ _ _ _ pp _ _ _ _ _ _ _ _) = pp
+
+pTyVarB (PE _ _ _ _ _ pp _ _ _ _ _ _ _) = pp
+pTyVarO (PE _ _ _ _ _ _ pp _ _ _ _ _ _) = pp
+pUVar (PE _ _ _ _ _ _ _ pp _ _ _ _ _) = pp
+
+pMajBndr (PE _ _ _ _ _ _ _ _ pp _ _ _ _) = pp
+pMinBndr (PE _ _ _ _ _ _ _ _ _ pp _ _ _) = pp
+pOcc (PE _ _ _ _ _ _ _ _ _ _ pp _ _) = pp
+
+pTy (PE _ _ _ _ _ _ _ _ _ _ _ pp _) = pp
+pUse (PE _ _ _ _ _ _ _ _ _ _ _ _ pp) = pp
\end{code}
We tend to {\em renumber} everything before printing, so that