Add (a) CoreM monad, (b) new Annotations feature
[ghc-hetmet.git] / compiler / utils / Outputable.lhs
index 79a4917..fb0270f 100644 (file)
@@ -36,11 +36,12 @@ module Outputable (
        printSDoc, printErrs, hPrintDump, printDump,
        printForC, printForAsm, printForUser, printForUserPartWay,
        pprCode, mkCodeStyle,
-       showSDoc, showSDocForUser, showSDocDebug, showSDocDump,
+       showSDoc, showSDocForUser, showSDocDebug, showSDocDump, showPpr,
        showSDocUnqual, showsPrecSDoc,
 
        pprInfixVar, pprPrefixVar,
        pprHsChar, pprHsString, pprHsInfix, pprHsVar,
+    pprFastFilePath,
 
         -- * Controlling the style in which output is printed
        BindingSite(..),
@@ -52,7 +53,7 @@ module Outputable (
        codeStyle, userStyle, debugStyle, dumpStyle, asmStyle,
        ifPprDebug, qualName, qualModule,
        mkErrStyle, defaultErrStyle, defaultDumpStyle, defaultUserStyle,
-        mkUserStyle,
+        mkUserStyle, Depth(..),
 
        -- * Error handling and debugging utilities
        pprPanic, assertPprPanic, pprPanicFastInt, pprPgmError, 
@@ -74,6 +75,7 @@ import Panic
 import Data.Word       ( Word32 )
 import System.IO       ( Handle, stderr, stdout, hFlush )
 import Data.Char        ( ord )
+import System.FilePath
 \end{code}
 
 
@@ -154,9 +156,7 @@ alwaysQualifyModules _ = True
 neverQualifyModules :: QueryQualifyModule
 neverQualifyModules _ = False
 
-type QueryQualifies = (QueryQualifyName, QueryQualifyModule)
-
-alwaysQualify, neverQualify :: QueryQualifies
+alwaysQualify, neverQualify :: PrintUnqualified
 alwaysQualify = (alwaysQualifyNames, alwaysQualifyModules)
 neverQualify  = (neverQualifyNames,  neverQualifyModules)
 
@@ -179,7 +179,7 @@ defaultErrStyle
   | opt_PprStyle_Debug   = mkUserStyle alwaysQualify AllTheWay
   | otherwise            = mkUserStyle alwaysQualify (PartWay opt_PprUserLength)
 
-mkUserStyle :: QueryQualifies -> Depth -> PprStyle
+mkUserStyle :: PrintUnqualified -> Depth -> PprStyle
 mkUserStyle unqual depth
    | opt_PprStyle_Debug = PprDebug
    | otherwise          = PprUser unqual depth
@@ -333,6 +333,9 @@ showSDocDump d = show (d PprDump)
 
 showSDocDebug :: SDoc -> String
 showSDocDebug d = show (d PprDebug)
+
+showPpr :: Outputable a => a -> String
+showPpr = showSDoc . ppr
 \end{code}
 
 \begin{code}
@@ -601,6 +604,9 @@ isOperator ppr_v
         ('_':_)   -> False              -- Not an operator
         (c:_)     -> not (isAlpha c)    -- Starts with non-alpha
         _         -> False
+
+pprFastFilePath :: FastString -> SDoc
+pprFastFilePath path = text $ normalise $ unpackFS path
 \end{code}
 
 %************************************************************************