where
ppr_bndr = pprBndr CaseBind
+
+-- | Pretty print the argument in a function application.
pprArg :: OutputableBndr a => Expr a -> SDoc
-pprArg (Type ty) = ptext (sLit "@") <+> pprParendType ty
+pprArg (Type ty)
+ | opt_SuppressTypeApplications = empty
+ | otherwise = ptext (sLit "@") <+> pprParendType ty
+
pprArg expr = pprParendExpr expr
\end{code}
\begin{code}
ppIdInfo :: Id -> IdInfo -> SDoc
ppIdInfo id info
+ | opt_SuppressIdInfo = empty
+ | otherwise
= showAttributes
[ (True, pp_scope <> ppr (idDetails id))
, (has_arity, ptext (sLit "Arity=") <> int arity)
-- is required to get the RTS ticky support.
------ Debugging ----------------------------------------------------
- , Flag "dppr-debug" (PassFlag addOpt)
- , Flag "dsuppress-uniques" (PassFlag addOpt)
- , Flag "dsuppress-coercions" (PassFlag addOpt)
- , Flag "dsuppress-module-prefixes" (PassFlag addOpt)
- , Flag "dppr-user-length" (AnySuffix addOpt)
- , Flag "dopt-fuel" (AnySuffix addOpt)
- , Flag "dtrace-level" (AnySuffix addOpt)
- , Flag "dno-debug-output" (PassFlag addOpt)
- , Flag "dstub-dead-values" (PassFlag addOpt)
+ , Flag "dppr-debug" (PassFlag addOpt)
+ , Flag "dsuppress-all" (PassFlag addOpt)
+ , Flag "dsuppress-uniques" (PassFlag addOpt)
+ , Flag "dsuppress-coercions" (PassFlag addOpt)
+ , Flag "dsuppress-module-prefixes" (PassFlag addOpt)
+ , Flag "dsuppress-type-applications" (PassFlag addOpt)
+ , Flag "dsuppress-idinfo" (PassFlag addOpt)
+ , Flag "dppr-user-length" (AnySuffix addOpt)
+ , Flag "dopt-fuel" (AnySuffix addOpt)
+ , Flag "dtrace-level" (AnySuffix addOpt)
+ , Flag "dno-debug-output" (PassFlag addOpt)
+ , Flag "dstub-dead-values" (PassFlag addOpt)
-- rest of the debugging flags are dynamic
----- Linker --------------------------------------------------------
-- Output style options
opt_PprUserLength,
+ opt_SuppressAll,
opt_SuppressUniques,
opt_SuppressCoercions,
opt_SuppressModulePrefixes,
+ opt_SuppressTypeApplications,
+ opt_SuppressIdInfo,
opt_PprStyle_Debug, opt_TraceLevel,
opt_NoDebugOutput,
opt_IgnoreDotGhci :: Bool
opt_IgnoreDotGhci = lookUp (fsLit "-ignore-dot-ghci")
--- debugging opts
+-- debugging options
+-- | Suppress all that is suppressable in core dumps.
+opt_SuppressAll :: Bool
+opt_SuppressAll
+ = lookUp (fsLit "-dsuppress-all")
+
+-- | Suppress unique ids on variables.
opt_SuppressUniques :: Bool
-opt_SuppressUniques = lookUp (fsLit "-dsuppress-uniques")
+opt_SuppressUniques
+ = lookUp (fsLit "-dsuppress-all")
+ || lookUp (fsLit "-dsuppress-uniques")
+-- | Suppress all coercions, them replacing with '...'
opt_SuppressCoercions :: Bool
-opt_SuppressCoercions = lookUp (fsLit "-dsuppress-coercions")
+opt_SuppressCoercions
+ = lookUp (fsLit "-dsuppress-all")
+ || lookUp (fsLit "-dsuppress-coercions")
+-- | Suppress module id prefixes on variables.
opt_SuppressModulePrefixes :: Bool
-opt_SuppressModulePrefixes = lookUp (fsLit "-dsuppress-module-prefixes")
+opt_SuppressModulePrefixes
+ = lookUp (fsLit "-dsuppress-all")
+ || lookUp (fsLit "-dsuppress-module-prefixes")
+
+-- | Suppress type applications.
+opt_SuppressTypeApplications :: Bool
+opt_SuppressTypeApplications
+ = lookUp (fsLit "-dsuppress-all")
+ || lookUp (fsLit "-dsuppress-type-applications")
+
+-- | Suppress info such as arity and unfoldings on identifiers.
+opt_SuppressIdInfo :: Bool
+opt_SuppressIdInfo
+ = lookUp (fsLit "-dsuppress-all")
+ || lookUp (fsLit "-dsuppress-idinfo")
+
opt_PprStyle_Debug :: Bool
opt_PprStyle_Debug = lookUp (fsLit "-dppr-debug")