BindingSite(..),
- PprStyle, CodeStyle(..), PrintUnqualified, alwaysQualify, QualifyName(..),
+ PprStyle, CodeStyle(..), PrintUnqualified, alwaysQualify, neverQualify,
+ QualifyName(..),
getPprStyle, withPprStyle, withPprStyleDoc,
pprDeeper, pprDeeperList, pprSetDepth,
codeStyle, userStyle, debugStyle, dumpStyle, asmStyle,
ifPprDebug, qualName, qualModule,
mkErrStyle, defaultErrStyle, defaultDumpStyle, defaultUserStyle,
+ mkUserStyle,
SDoc, -- Abstract
docToSDoc,
speakNth, speakNTimes, speakN, speakNOf, plural,
printSDoc, printErrs, hPrintDump, printDump,
- printForC, printForAsm, printForUser,
+ printForC, printForAsm, printForUser, printForUserPartWay,
pprCode, mkCodeStyle,
showSDoc, showSDocForUser, showSDocDebug, showSDocDump,
showSDocUnqual, showsPrecSDoc,
pprHsChar, pprHsString,
-- error handling
- pprPanic, assertPprPanic, pprPanic#, pprPgmError,
+ pprPanic, assertPprPanic, pprPanicFastInt, pprPgmError,
pprTrace, warnPprTrace,
- trace, pgmError, panic, panic#, assertPanic
+ trace, pgmError, panic, panicFastInt, assertPanic
) where
#include "HsVersions.h"
import StaticFlags ( opt_PprStyle_Debug, opt_PprUserLength )
import FastString
import FastTypes
-import GHC.Ptr
import qualified Pretty
import Pretty ( Doc, Mode(..) )
import Panic
printForUser handle unqual doc
= Pretty.printDoc PageMode handle (doc (mkUserStyle unqual AllTheWay))
+printForUserPartWay :: Handle -> Int -> PrintUnqualified -> SDoc -> IO ()
+printForUserPartWay handle d unqual doc
+ = Pretty.printDoc PageMode handle (doc (mkUserStyle unqual (PartWay d)))
+
-- printForC, printForAsm do what they sound like
printForC :: Handle -> SDoc -> IO ()
printForC handle doc = Pretty.printDoc LeftMode handle (doc (PprCode CStyle))
text :: String -> SDoc
char :: Char -> SDoc
ftext :: FastString -> SDoc
-ptext :: Ptr t -> SDoc
+ptext :: LitString -> SDoc
int :: Int -> SDoc
integer :: Integer -> SDoc
float :: Float -> SDoc
instance Outputable Int where
ppr n = int n
+instance Outputable Word32 where
+ ppr n = integer $ fromIntegral n
+
instance Outputable () where
ppr _ = text "()"
instance (Outputable a, Outputable b, Outputable c, Outputable d) =>
Outputable (a, b, c, d) where
- ppr (x,y,z,w) =
- parens (sep [ppr x <> comma,
- ppr y <> comma,
- ppr z <> comma,
- ppr w])
+ ppr (a,b,c,d) =
+ parens (sep [ppr a <> comma,
+ ppr b <> comma,
+ ppr c <> comma,
+ ppr d])
+
+instance (Outputable a, Outputable b, Outputable c, Outputable d, Outputable e) =>
+ Outputable (a, b, c, d, e) where
+ ppr (a,b,c,d,e) =
+ parens (sep [ppr a <> comma,
+ ppr b <> comma,
+ ppr c <> comma,
+ ppr d <> comma,
+ ppr e])
instance Outputable FastString where
ppr fs = ftext fs -- Prints an unadorned string,
-- (used for unusual pgm errors)
pprTrace = pprAndThen trace
-pprPanic# :: String -> SDoc -> FastInt
-pprPanic# heading pretty_msg = panic# (show (doc PprDebug))
+pprPanicFastInt :: String -> SDoc -> FastInt
+pprPanicFastInt heading pretty_msg = panicFastInt (show (doc PprDebug))
where
doc = text heading <+> pretty_msg