ghc-lib-parser-0.20190703: The GHC API, decoupled from GHC versions

Safe HaskellNone
LanguageHaskell2010

Outputable

Contents

Description

This module defines classes and functions for pretty-printing. It also exports a number of helpful debugging and other utilities such as trace and panic.

The interface to this module is very similar to the standard Hughes-PJ pretty printing module, except that it exports a number of additional functions that are rarely used, and works over the SDoc type.

Synopsis

Type classes

class Outputable a where Source #

Class designating that some type has an SDoc representation

Minimal complete definition

Nothing

Methods

ppr :: a -> SDoc Source #

pprPrec :: Rational -> a -> SDoc Source #

Instances
Outputable Bool Source # 
Instance details

Defined in Outputable

Outputable Char Source # 
Instance details

Defined in Outputable

Outputable Double Source # 
Instance details

Defined in Outputable

Outputable Float Source # 
Instance details

Defined in Outputable

Outputable Int Source # 
Instance details

Defined in Outputable

Methods

ppr :: Int -> SDoc Source #

pprPrec :: Rational -> Int -> SDoc Source #

Outputable Int32 Source # 
Instance details

Defined in Outputable

Outputable Int64 Source # 
Instance details

Defined in Outputable

Outputable Integer Source # 
Instance details

Defined in Outputable

Outputable Ordering Source # 
Instance details

Defined in Outputable

Outputable Word Source # 
Instance details

Defined in Outputable

Outputable Word16 Source # 
Instance details

Defined in Outputable

Outputable Word32 Source # 
Instance details

Defined in Outputable

Outputable () Source # 
Instance details

Defined in Outputable

Methods

ppr :: () -> SDoc Source #

pprPrec :: Rational -> () -> SDoc Source #

Outputable Fingerprint Source # 
Instance details

Defined in Outputable

Outputable Extension Source # 
Instance details

Defined in Outputable

Outputable Serialized Source # 
Instance details

Defined in Outputable

Outputable Name Source # 
Instance details

Defined in Name

Outputable OccName Source # 
Instance details

Defined in OccName

Outputable SDoc Source # 
Instance details

Defined in Outputable

Outputable PrimOp Source # 
Instance details

Defined in PrimOp

Outputable TyCon Source # 
Instance details

Defined in TyCon

Outputable FastString Source # 
Instance details

Defined in Outputable

Outputable ComponentId Source # 
Instance details

Defined in Module

Outputable InstalledUnitId Source # 
Instance details

Defined in Module

Outputable UnitId Source # 
Instance details

Defined in Module

Outputable ModuleName Source # 
Instance details

Defined in Module

Outputable Module Source # 
Instance details

Defined in Module

Outputable QualifyName Source # 
Instance details

Defined in Outputable

Outputable PprStyle Source # 
Instance details

Defined in Outputable

Outputable TcTyVarDetails Source # 
Instance details

Defined in TcType

Outputable MetaDetails Source # 
Instance details

Defined in TcType

Outputable SrcSpan Source # 
Instance details

Defined in SrcLoc

Outputable RealSrcSpan Source # 
Instance details

Defined in SrcLoc

Outputable SrcLoc Source # 
Instance details

Defined in SrcLoc

Outputable RealSrcLoc Source # 
Instance details

Defined in SrcLoc

Outputable IdDetails Source # 
Instance details

Defined in IdInfo

Outputable IntWithInf Source # 
Instance details

Defined in BasicTypes

Outputable FractionalLit Source # 
Instance details

Defined in BasicTypes

Outputable IntegralLit Source # 
Instance details

Defined in BasicTypes

Outputable InlineSpec Source # 
Instance details

Defined in BasicTypes

Outputable InlinePragma Source # 
Instance details

Defined in BasicTypes

Outputable RuleMatchInfo Source # 
Instance details

Defined in BasicTypes

Outputable Activation Source # 
Instance details

Defined in BasicTypes

Outputable CompilerPhase Source # 
Instance details

Defined in BasicTypes

Outputable SourceText Source # 
Instance details

Defined in BasicTypes

Outputable SuccessFlag Source # 
Instance details

Defined in BasicTypes

Outputable TailCallInfo Source # 
Instance details

Defined in BasicTypes

Outputable OccInfo Source # 
Instance details

Defined in BasicTypes

Outputable OverlapMode Source # 
Instance details

Defined in BasicTypes

Outputable OverlapFlag Source # 
Instance details

Defined in BasicTypes

Outputable Origin Source # 
Instance details

Defined in BasicTypes

Outputable RecFlag Source # 
Instance details

Defined in BasicTypes

Outputable Boxity Source # 
Instance details

Defined in BasicTypes

Outputable TopLevelFlag Source # 
Instance details

Defined in BasicTypes

Outputable LexicalFixity Source # 
Instance details

Defined in BasicTypes

Outputable FixityDirection Source # 
Instance details

Defined in BasicTypes

Outputable Fixity Source # 
Instance details

Defined in BasicTypes

Outputable WarningTxt Source # 
Instance details

Defined in BasicTypes

Outputable StringLiteral Source # 
Instance details

Defined in BasicTypes

Outputable FunctionOrData Source # 
Instance details

Defined in BasicTypes

Outputable SwapFlag Source # 
Instance details

Defined in BasicTypes

Outputable OneShotInfo Source # 
Instance details

Defined in BasicTypes

Outputable Alignment Source # 
Instance details

Defined in BasicTypes

Outputable LeftOrRight Source # 
Instance details

Defined in BasicTypes

Outputable Unique Source # 
Instance details

Defined in Unique

Outputable DefUnitId Source # 
Instance details

Defined in Module

Outputable InstalledModule Source # 
Instance details

Defined in Module

Outputable IndefModule Source # 
Instance details

Defined in Module

Outputable IndefUnitId Source # 
Instance details

Defined in Module

Outputable ModLocation Source # 
Instance details

Defined in Module

Outputable PackageName Source # 
Instance details

Defined in PackageConfig

Outputable SourcePackageId Source # 
Instance details

Defined in PackageConfig

Outputable CType Source # 
Instance details

Defined in ForeignCall

Outputable Header Source # 
Instance details

Defined in ForeignCall

Outputable CCallConv Source # 
Instance details

Defined in ForeignCall

Outputable CCallSpec Source # 
Instance details

Defined in ForeignCall

Outputable CExportSpec Source # 
Instance details

Defined in ForeignCall

Outputable Safety Source # 
Instance details

Defined in ForeignCall

Outputable ForeignCall Source # 
Instance details

Defined in ForeignCall

Outputable Phase Source # 
Instance details

Defined in DriverPhases

Outputable EdgeType Source # 
Instance details

Defined in Digraph

Outputable WarnReason Source # 
Instance details

Defined in CmdLineParser

Outputable PackageFlag Source # 
Instance details

Defined in DynFlags

Outputable ModRenaming Source # 
Instance details

Defined in DynFlags

Outputable PackageArg Source # 
Instance details

Defined in DynFlags

Outputable GhcMode Source # 
Instance details

Defined in DynFlags

Outputable SafeHaskellMode Source # 
Instance details

Defined in DynFlags

Outputable Language Source # 
Instance details

Defined in DynFlags

Outputable WarnReason Source # 
Instance details

Defined in DynFlags

Outputable CoreToDo Source # 
Instance details

Defined in CoreMonad

Outputable Width Source # 
Instance details

Defined in CmmType

Outputable CmmType Source # 
Instance details

Defined in CmmType

Outputable Var Source # 
Instance details

Defined in Var

Methods

ppr :: Var -> SDoc Source #

pprPrec :: Rational -> Var -> SDoc Source #

Outputable AnonArgFlag Source # 
Instance details

Defined in Var

Outputable ArgFlag Source # 
Instance details

Defined in Var

Outputable MCoercion Source # 
Instance details

Defined in TyCoRep

Outputable TyCoBinder Source # 
Instance details

Defined in TyCoRep

Outputable TyLit Source # 
Instance details

Defined in TyCoRep

Outputable TCvSubst Source # 
Instance details

Defined in TyCoRep

Outputable UnivCoProvenance Source # 
Instance details

Defined in TyCoRep

Outputable Coercion Source # 
Instance details

Defined in TyCoRep

Outputable TyThing Source # 
Instance details

Defined in TyCoRep

Outputable Type Source # 
Instance details

Defined in TyCoRep

Outputable UnusablePackageReason Source # 
Instance details

Defined in Packages

Outputable ModuleOrigin Source # 
Instance details

Defined in Packages

Outputable ArgDocMap Source # 
Instance details

Defined in HsDoc

Outputable DeclDocMap Source # 
Instance details

Defined in HsDoc

Outputable HsDocString Source # 
Instance details

Defined in HsDoc

Outputable AvailInfo Source # 
Instance details

Defined in Avail

Outputable ImportSpec Source # 
Instance details

Defined in RdrName

Outputable Parent Source # 
Instance details

Defined in RdrName

Outputable GlobalRdrElt Source # 
Instance details

Defined in RdrName

Outputable LocalRdrEnv Source # 
Instance details

Defined in RdrName

Outputable RdrName Source # 
Instance details

Defined in RdrName

Outputable AnnotationComment Source # 
Instance details

Defined in ApiAnnotation

Outputable AnnKeywordId Source # 
Instance details

Defined in ApiAnnotation

Outputable Token Source # 
Instance details

Defined in Lexer

Outputable Annotation Source # 
Instance details

Defined in Annotations

Outputable ForallVisFlag Source # 
Instance details

Defined in Var

Outputable PatSyn Source # 
Instance details

Defined in PatSyn

Outputable IfaceBndr Source # 
Instance details

Defined in IfaceType

Outputable IfaceCoercion Source # 
Instance details

Defined in IfaceType

Outputable IfaceTyLit Source # 
Instance details

Defined in IfaceType

Outputable IfaceTyCon Source # 
Instance details

Defined in IfaceType

Outputable IfaceType Source # 
Instance details

Defined in IfaceType

Outputable IfaceAppArgs Source # 
Instance details

Defined in IfaceType

Outputable NoExt Source # 
Instance details

Defined in HsExtension

Outputable EqSpec Source # 
Instance details

Defined in DataCon

Outputable DataCon Source # 
Instance details

Defined in DataCon

Outputable ConLike Source # 
Instance details

Defined in ConLike

Outputable CostCentreStack Source # 
Instance details

Defined in CostCentre

Outputable CostCentre Source # 
Instance details

Defined in CostCentre

Outputable CoAxiomRule Source # 
Instance details

Defined in CoAxiom

Outputable Role Source # 
Instance details

Defined in CoAxiom

Outputable CoAxBranch Source # 
Instance details

Defined in CoAxiom

Outputable LiftingContext Source # 
Instance details

Defined in Coercion

Outputable Class Source # 
Instance details

Defined in Class

Outputable InScopeSet Source # 
Instance details

Defined in VarEnv

Outputable TyConFlavour Source # 
Instance details

Defined in TyCon

Outputable PrimElemRep Source # 
Instance details

Defined in TyCon

Outputable PrimRep Source # 
Instance details

Defined in TyCon

Outputable FamTyConFlav Source # 
Instance details

Defined in TyCon

Outputable AlgTyConFlav Source # 
Instance details

Defined in TyCon

Outputable TyConBndrVis Source # 
Instance details

Defined in TyCon

Outputable CoercionHole Source # 
Instance details

Defined in TyCoRep

Outputable EqRel Source # 
Instance details

Defined in Type

Outputable Literal Source # 
Instance details

Defined in Literal

Outputable OverLitVal Source # 
Instance details

Defined in HsLit

Outputable StrictnessMark Source # 
Instance details

Defined in DataCon

Outputable SrcUnpackedness Source # 
Instance details

Defined in DataCon

Outputable SrcStrictness Source # 
Instance details

Defined in DataCon

Outputable HsImplBang Source # 
Instance details

Defined in DataCon

Outputable HsSrcBang Source # 
Instance details

Defined in DataCon

Outputable SlotTy Source # 
Instance details

Defined in RepType

Outputable StrictSig Source # 
Instance details

Defined in Demand

Outputable DmdType Source # 
Instance details

Defined in Demand

Outputable CPRResult Source # 
Instance details

Defined in Demand

Outputable TypeShape Source # 
Instance details

Defined in Demand

Outputable Count Source # 
Instance details

Defined in Demand

Outputable UseDmd Source # 
Instance details

Defined in Demand

Outputable StrDmd Source # 
Instance details

Defined in Demand

Outputable UnfoldingGuidance Source # 
Instance details

Defined in PprCore

Outputable UnfoldingSource Source # 
Instance details

Defined in PprCore

Outputable Unfolding Source # 
Instance details

Defined in PprCore

Outputable CoreRule Source # 
Instance details

Defined in PprCore

Outputable AltCon Source # 
Instance details

Defined in CoreSyn

Outputable LevityInfo Source # 
Instance details

Defined in IdInfo

Outputable TickBoxOp Source # 
Instance details

Defined in IdInfo

Outputable CafInfo Source # 
Instance details

Defined in IdInfo

Outputable RecSelParent Source # 
Instance details

Defined in IdInfo

Outputable PrimCall Source # 
Instance details

Defined in PrimOp

Outputable HsTyLit Source # 
Instance details

Defined in HsTypes

Outputable NewHsTypeX Source # 
Instance details

Defined in HsTypes

Outputable HsIPName Source # 
Instance details

Defined in HsTypes

Outputable CgBreakInfo Source # 
Instance details

Defined in ByteCodeTypes

Outputable UnlinkedBCO Source # 
Instance details

Defined in ByteCodeTypes

Outputable CompiledByteCode Source # 
Instance details

Defined in ByteCodeTypes

Outputable SptEntry Source # 
Instance details

Defined in LinkerTypes

Outputable Unlinked Source # 
Instance details

Defined in LinkerTypes

Outputable Linkable Source # 
Instance details

Defined in LinkerTypes

Outputable CoreStats Source # 
Instance details

Defined in CoreStats

Outputable ShowHowMuch Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceJoinInfo Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceConAlt Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceExpr Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceIdDetails Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceUnfolding Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceInfoItem Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceIdInfo Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceCompleteMatch Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceAnnotation Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceRule Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceFamInst Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceClsInst Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceAT Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceClassOp Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceTyConParent Source # 
Instance details

Defined in IfaceSyn

Outputable IfaceDecl Source # 
Instance details

Defined in IfaceSyn

Outputable FamInstMatch Source # 
Instance details

Defined in FamInstEnv

Outputable FamInst Source # 
Instance details

Defined in FamInstEnv

Outputable TcLevel Source # 
Instance details

Defined in TcType

Outputable MetaInfo Source # 
Instance details

Defined in TcType

Outputable InferResult Source # 
Instance details

Defined in TcType

Outputable ExpType Source # 
Instance details

Defined in TcType

Outputable ClsInst Source # 
Instance details

Defined in InstEnv

Outputable EvCallStack Source # 
Instance details

Defined in TcEvidence

Outputable EvTypeable Source # 
Instance details

Defined in TcEvidence

Outputable EvTerm Source # 
Instance details

Defined in TcEvidence

Outputable EvBind Source # 
Instance details

Defined in TcEvidence

Outputable EvBindMap Source # 
Instance details

Defined in TcEvidence

Outputable EvBindsVar Source # 
Instance details

Defined in TcEvidence

Outputable TcEvBinds Source # 
Instance details

Defined in TcEvidence

Outputable HsWrapper Source # 
Instance details

Defined in TcEvidence

Outputable TcSpecPrag Source # 
Instance details

Defined in HsBinds

Outputable DocDecl Source # 
Instance details

Defined in HsDecls

Outputable ForeignExport Source # 
Instance details

Defined in HsDecls

Outputable ForeignImport Source # 
Instance details

Defined in HsDecls

Outputable NewOrData Source # 
Instance details

Defined in HsDecls

Outputable PendingTcSplice Source # 
Instance details

Defined in HsExpr

Outputable PendingRnSplice Source # 
Instance details

Defined in HsExpr

Outputable SpliceDecoration Source # 
Instance details

Defined in HsExpr

Outputable UnboundVar Source # 
Instance details

Defined in HsExpr

Outputable TyEl Source # 
Instance details

Defined in RdrHsSyn

Outputable TmVarCt Source # 
Instance details

Defined in PmExpr

Outputable PmAltCon Source # 
Instance details

Defined in PmExpr

Outputable PmLit Source # 
Instance details

Defined in PmExpr

Outputable PmExpr Source # 
Instance details

Defined in PmExpr

Outputable CompleteMatch Source # 
Instance details

Defined in HscTypes

Outputable IfaceTrustInfo Source # 
Instance details

Defined in HscTypes

Outputable ModSummary Source # 
Instance details

Defined in HscTypes

Outputable FixItem Source # 
Instance details

Defined in HscTypes

Outputable InteractiveImport Source # 
Instance details

Defined in HscTypes

Outputable TargetId Source # 
Instance details

Defined in HscTypes

Outputable Target Source # 
Instance details

Defined in HscTypes

Outputable TypeOrKind Source # 
Instance details

Defined in TcRnTypes

Outputable CtOrigin Source # 
Instance details

Defined in TcRnTypes

Outputable SkolemInfo Source # 
Instance details

Defined in TcRnTypes

Outputable SubGoalDepth Source # 
Instance details

Defined in TcRnTypes

Outputable CtFlavour Source # 
Instance details

Defined in TcRnTypes

Outputable CtEvidence Source # 
Instance details

Defined in TcRnTypes

Outputable TcEvDest Source # 
Instance details

Defined in TcRnTypes

Outputable ImplicStatus Source # 
Instance details

Defined in TcRnTypes

Outputable Implication Source # 
Instance details

Defined in TcRnTypes

Outputable WantedConstraints Source # 
Instance details

Defined in TcRnTypes

Outputable Hole Source # 
Instance details

Defined in TcRnTypes

Outputable QCInst Source # 
Instance details

Defined in TcRnTypes

Outputable Ct Source # 
Instance details

Defined in TcRnTypes

Methods

ppr :: Ct -> SDoc Source #

pprPrec :: Rational -> Ct -> SDoc Source #

Outputable TcPatSynInfo Source # 
Instance details

Defined in TcRnTypes

Outputable TcIdSigInst Source # 
Instance details

Defined in TcRnTypes

Outputable TcIdSigInfo Source # 
Instance details

Defined in TcRnTypes

Outputable TcSigInfo Source # 
Instance details

Defined in TcRnTypes

Outputable WhereFrom Source # 
Instance details

Defined in TcRnTypes

Outputable IdBindingInfo Source # 
Instance details

Defined in TcRnTypes

Outputable PromotionErr Source # 
Instance details

Defined in TcRnTypes

Outputable TcTyThing Source # 
Instance details

Defined in TcRnTypes

Outputable ThStage Source # 
Instance details

Defined in TcRnTypes

Outputable TcBinder Source # 
Instance details

Defined in TcRnTypes

Outputable HoleFit Source # 
Instance details

Defined in TcHoleFitTypes

Outputable HoleFitCandidate Source # 
Instance details

Defined in TcHoleFitTypes

Outputable TypedHole Source # 
Instance details

Defined in TcHoleFitTypes

Outputable PhasePlus Source # 
Instance details

Defined in PipelineMonad

Outputable PluginRecompile Source # 
Instance details

Defined in Plugins

Outputable Tick Source # 
Instance details

Defined in CoreMonad

Outputable FloatOutSwitches Source # 
Instance details

Defined in CoreMonad

Outputable SimplMode Source # 
Instance details

Defined in CoreMonad

Outputable HsComponentId Source # 
Instance details

Defined in BkpSyn

Outputable FloatBind Source # 
Instance details

Defined in MkCore

Outputable Subst Source # 
Instance details

Defined in CoreSubst

Outputable CallCtxt Source # 
Instance details

Defined in CoreUnfold

Outputable ArgSummary Source # 
Instance details

Defined in CoreUnfold

Outputable a => Outputable [a] Source # 
Instance details

Defined in Outputable

Methods

ppr :: [a] -> SDoc Source #

pprPrec :: Rational -> [a] -> SDoc Source #

Outputable a => Outputable (Maybe a) Source # 
Instance details

Defined in Outputable

Methods

ppr :: Maybe a -> SDoc Source #

pprPrec :: Rational -> Maybe a -> SDoc Source #

Outputable elt => Outputable (IntMap elt) Source # 
Instance details

Defined in Outputable

Methods

ppr :: IntMap elt -> SDoc Source #

pprPrec :: Rational -> IntMap elt -> SDoc Source #

Outputable a => Outputable (SCC a) Source # 
Instance details

Defined in Outputable

Methods

ppr :: SCC a -> SDoc Source #

pprPrec :: Rational -> SCC a -> SDoc Source #

Outputable a => Outputable (Set a) Source # 
Instance details

Defined in Outputable

Methods

ppr :: Set a -> SDoc Source #

pprPrec :: Rational -> Set a -> SDoc Source #

Outputable a => Outputable (Pair a) Source # 
Instance details

Defined in Pair

Methods

ppr :: Pair a -> SDoc Source #

pprPrec :: Rational -> Pair a -> SDoc Source #

Outputable a => Outputable (OrdList a) Source # 
Instance details

Defined in OrdList

Outputable (DefMethSpec ty) Source # 
Instance details

Defined in BasicTypes

Outputable a => Outputable (UniqFM a) Source # 
Instance details

Defined in UniqFM

Methods

ppr :: UniqFM a -> SDoc Source #

pprPrec :: Rational -> UniqFM a -> SDoc Source #

Outputable a => Outputable (UniqSet a) Source # 
Instance details

Defined in UniqSet

Outputable a => Outputable (UniqDFM a) Source # 
Instance details

Defined in UniqDFM

Outputable a => Outputable (UniqDSet a) Source # 
Instance details

Defined in UniqDSet

OutputableBndr a => Outputable (BooleanFormula a) Source # 
Instance details

Defined in BooleanFormula

Outputable node => Outputable (Graph node) Source # 
Instance details

Defined in Digraph

Methods

ppr :: Graph node -> SDoc Source #

pprPrec :: Rational -> Graph node -> SDoc Source #

Outputable a => Outputable (Bag a) Source # 
Instance details

Defined in Bag

Methods

ppr :: Bag a -> SDoc Source #

pprPrec :: Rational -> Bag a -> SDoc Source #

Outputable a => Outputable (OccEnv a) Source # 
Instance details

Defined in OccName

Methods

ppr :: OccEnv a -> SDoc Source #

pprPrec :: Rational -> OccEnv a -> SDoc Source #

Outputable a => Outputable (FieldLbl a) Source # 
Instance details

Defined in FieldLabel

Outputable name => Outputable (AnnTarget name) Source # 
Instance details

Defined in Annotations

Methods

ppr :: AnnTarget name -> SDoc Source #

pprPrec :: Rational -> AnnTarget name -> SDoc Source #

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (Pat p) Source # 
Instance details

Defined in HsPat

Methods

ppr :: Pat p -> SDoc Source #

pprPrec :: Rational -> Pat p -> SDoc Source #

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (IE p) Source # 
Instance details

Defined in HsImpExp

Methods

ppr :: IE p -> SDoc Source #

pprPrec :: Rational -> IE p -> SDoc Source #

OutputableBndr name => Outputable (IEWrappedName name) Source # 
Instance details

Defined in HsImpExp

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (ImportDecl p) Source # 
Instance details

Defined in HsImpExp

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (SyntaxExpr p) Source # 
Instance details

Defined in HsExpr

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsSplice p) Source # 
Instance details

Defined in HsExpr

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsCmd p) Source # 
Instance details

Defined in HsExpr

Methods

ppr :: HsCmd p -> SDoc Source #

pprPrec :: Rational -> HsCmd p -> SDoc Source #

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsExpr p) Source # 
Instance details

Defined in HsExpr

Methods

ppr :: HsExpr p -> SDoc Source #

pprPrec :: Rational -> HsExpr p -> SDoc Source #

Outputable (CoAxiom br) Source # 
Instance details

Defined in CoAxiom

Methods

ppr :: CoAxiom br -> SDoc Source #

pprPrec :: Rational -> CoAxiom br -> SDoc Source #

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsOverLit p) Source # 
Instance details

Defined in HsLit

p ~ GhcPass pass => Outputable (HsLit p) Source # 
Instance details

Defined in HsLit

Methods

ppr :: HsLit p -> SDoc Source #

pprPrec :: Rational -> HsLit p -> SDoc Source #

Outputable a => Outputable (UnifyResultM a) Source # 
Instance details

Defined in Unify

Outputable b => Outputable (TaggedBndr b) Source # 
Instance details

Defined in CoreSyn

Outputable id => Outputable (Tickish id) Source # 
Instance details

Defined in PprCore

Methods

ppr :: Tickish id -> SDoc Source #

pprPrec :: Rational -> Tickish id -> SDoc Source #

OutputableBndr b => Outputable (Bind b) Source # 
Instance details

Defined in PprCore

Methods

ppr :: Bind b -> SDoc Source #

pprPrec :: Rational -> Bind b -> SDoc Source #

OutputableBndr b => Outputable (Expr b) Source # 
Instance details

Defined in PprCore

Methods

ppr :: Expr b -> SDoc Source #

pprPrec :: Rational -> Expr b -> SDoc Source #

p ~ GhcPass pass => Outputable (AmbiguousFieldOcc p) Source # 
Instance details

Defined in HsTypes

Outputable (FieldOcc pass) Source # 
Instance details

Defined in HsTypes

Methods

ppr :: FieldOcc pass -> SDoc Source #

pprPrec :: Rational -> FieldOcc pass -> SDoc Source #

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (ConDeclField p) Source # 
Instance details

Defined in HsTypes

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsType p) Source # 
Instance details

Defined in HsTypes

Methods

ppr :: HsType p -> SDoc Source #

pprPrec :: Rational -> HsType p -> SDoc Source #

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsTyVarBndr p) Source # 
Instance details

Defined in HsTypes

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (LHsQTyVars p) Source # 
Instance details

Defined in HsTypes

Outputable a => Outputable (CoreMap a) Source # 
Instance details

Defined in CoreMap

Outputable a => Outputable (RecordPatSynField a) Source # 
Instance details

Defined in HsBinds

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (FixitySig p) Source # 
Instance details

Defined in HsBinds

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (Sig p) Source # 
Instance details

Defined in HsBinds

Methods

ppr :: Sig p -> SDoc Source #

pprPrec :: Rational -> Sig p -> SDoc Source #

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (IPBind p) Source # 
Instance details

Defined in HsBinds

Methods

ppr :: IPBind p -> SDoc Source #

pprPrec :: Rational -> IPBind p -> SDoc Source #

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsIPBinds p) Source # 
Instance details

Defined in HsBinds

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (ABExport p) Source # 
Instance details

Defined in HsBinds

(p ~ GhcPass pass, OutputableBndr (IdP p)) => Outputable (RoleAnnotDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (AnnDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndr (IdP p)) => Outputable (WarnDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndr (IdP p)) => Outputable (WarnDecls p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (RuleBndr p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (RuleDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (RuleDecls p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (ForeignDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (DefaultDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (DerivStrategy p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (DerivDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (InstDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (ClsInstDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (DataFamInstDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (TyFamInstDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (ConDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsDerivingClause p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsDataDefn p) Source # 
Instance details

Defined in HsDecls

Outputable (FamilyInfo pass) Source # 
Instance details

Defined in HsDecls

Methods

ppr :: FamilyInfo pass -> SDoc Source #

pprPrec :: Rational -> FamilyInfo pass -> SDoc Source #

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (FamilyDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (TyClGroup p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (TyClDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (SpliceDecl p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsGroup p) Source # 
Instance details

Defined in HsDecls

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsDecl p) Source # 
Instance details

Defined in HsDecls

Methods

ppr :: HsDecl p -> SDoc Source #

pprPrec :: Rational -> HsDecl p -> SDoc Source #

(Outputable p, Outputable (NameOrRdrName p)) => Outputable (HsStmtContext p) Source # 
Instance details

Defined in HsExpr

OutputableBndr id => Outputable (HsMatchContext id) Source # 
Instance details

Defined in HsExpr

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (ArithSeqInfo p) Source # 
Instance details

Defined in HsExpr

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsBracket p) Source # 
Instance details

Defined in HsExpr

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsSplicedThing p) Source # 
Instance details

Defined in HsExpr

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsCmdTop p) Source # 
Instance details

Defined in HsExpr

(p ~ GhcPass pass, OutputableBndrId p) => Outputable (HsModule p) Source # 
Instance details

Defined in HsSyn

p ~ GhcPs => Outputable (PatBuilder p) Source # 
Instance details

Defined in RdrHsSyn

(Outputable a, Outputable b) => Outputable (Either a b) Source # 
Instance details

Defined in Outputable

Methods

ppr :: Either a b -> SDoc Source #

pprPrec :: Rational -> Either a b -> SDoc Source #

(Outputable a, Outputable b) => Outputable (a, b) Source # 
Instance details

Defined in Outputable

Methods

ppr :: (a, b) -> SDoc Source #

pprPrec :: Rational -> (a, b) -> SDoc Source #

(Outputable key, Outputable elt) => Outputable (Map key elt) Source # 
Instance details

Defined in Outputable

Methods

ppr :: Map key elt -> SDoc Source #

pprPrec :: Rational -> Map key elt -> SDoc Source #

(Outputable l, Outputable e) => Outputable (GenLocated l e) Source # 
Instance details

Defined in SrcLoc

(Outputable a, Outputable b) => Outputable (Node a b) Source # 
Instance details

Defined in Digraph

Methods

ppr :: Node a b -> SDoc Source #

pprPrec :: Rational -> Node a b -> SDoc Source #

Outputable tv => Outputable (VarBndr tv ArgFlag) Source # 
Instance details

Defined in Var

Outputable tv => Outputable (VarBndr tv TyConBndrVis) Source # 
Instance details

Defined in TyCon

(Outputable a, Outputable (m a)) => Outputable (GenMap m a) Source # 
Instance details

Defined in TrieMap

Methods

ppr :: GenMap m a -> SDoc Source #

pprPrec :: Rational -> GenMap m a -> SDoc Source #

(TrieMap m, Outputable a) => Outputable (ListMap m a) Source # 
Instance details

Defined in TrieMap

Methods

ppr :: ListMap m a -> SDoc Source #

pprPrec :: Rational -> ListMap m a -> SDoc Source #

(Outputable tm, Outputable ty) => Outputable (HsArg tm ty) Source # 
Instance details

Defined in HsTypes

Methods

ppr :: HsArg tm ty -> SDoc Source #

pprPrec :: Rational -> HsArg tm ty -> SDoc Source #

(Outputable arg, Outputable rec) => Outputable (HsConDetails arg rec) Source # 
Instance details

Defined in HsTypes

Methods

ppr :: HsConDetails arg rec -> SDoc Source #

pprPrec :: Rational -> HsConDetails arg rec -> SDoc Source #

(p ~ GhcPass pass, Outputable thing) => Outputable (HsWildCardBndrs p thing) Source # 
Instance details

Defined in HsTypes

Methods

ppr :: HsWildCardBndrs p thing -> SDoc Source #

pprPrec :: Rational -> HsWildCardBndrs p thing -> SDoc Source #

(p ~ GhcPass pass, Outputable thing) => Outputable (HsImplicitBndrs p thing) Source # 
Instance details

Defined in HsTypes

Methods

ppr :: HsImplicitBndrs p thing -> SDoc Source #

pprPrec :: Rational -> HsImplicitBndrs p thing -> SDoc Source #

(idR ~ GhcPass pr, OutputableBndrId idL, OutputableBndrId idR, Outputable (XXPatSynBind idL idR)) => Outputable (PatSynBind idL idR) Source # 
Instance details

Defined in HsBinds

Methods

ppr :: PatSynBind idL idR -> SDoc Source #

pprPrec :: Rational -> PatSynBind idL idR -> SDoc Source #

(idL ~ GhcPass pl, idR ~ GhcPass pr, OutputableBndrId idL, OutputableBndrId idR) => Outputable (HsBindLR idL idR) Source # 
Instance details

Defined in HsBinds

Methods

ppr :: HsBindLR idL idR -> SDoc Source #

pprPrec :: Rational -> HsBindLR idL idR -> SDoc Source #

(idL ~ GhcPass pl, idR ~ GhcPass pr, OutputableBndrId idL, OutputableBndrId idR) => Outputable (HsValBindsLR idL idR) Source # 
Instance details

Defined in HsBinds

Methods

ppr :: HsValBindsLR idL idR -> SDoc Source #

pprPrec :: Rational -> HsValBindsLR idL idR -> SDoc Source #

(idL ~ GhcPass pl, idR ~ GhcPass pr, OutputableBndrId idL, OutputableBndrId idR) => Outputable (HsLocalBindsLR idL idR) Source # 
Instance details

Defined in HsBinds

Methods

ppr :: HsLocalBindsLR idL idR -> SDoc Source #

pprPrec :: Rational -> HsLocalBindsLR idL idR -> SDoc Source #

(Outputable p, Outputable arg) => Outputable (HsRecField' p arg) Source # 
Instance details

Defined in HsPat

Methods

ppr :: HsRecField' p arg -> SDoc Source #

pprPrec :: Rational -> HsRecField' p arg -> SDoc Source #

Outputable arg => Outputable (HsRecFields p arg) Source # 
Instance details

Defined in HsPat

Methods

ppr :: HsRecFields p arg -> SDoc Source #

pprPrec :: Rational -> HsRecFields p arg -> SDoc Source #

(Outputable (StmtLR idL idL (LHsExpr idL)), Outputable (XXParStmtBlock idL idR)) => Outputable (ParStmtBlock idL idR) Source # 
Instance details

Defined in HsExpr

Methods

ppr :: ParStmtBlock idL idR -> SDoc Source #

pprPrec :: Rational -> ParStmtBlock idL idR -> SDoc Source #

(idR ~ GhcPass pr, OutputableBndrId idR, Outputable body) => Outputable (Match idR body) Source # 
Instance details

Defined in HsExpr

Methods

ppr :: Match idR body -> SDoc Source #

pprPrec :: Rational -> Match idR body -> SDoc Source #

(Outputable a, Outputable b, Outputable c) => Outputable (a, b, c) Source # 
Instance details

Defined in Outputable

Methods

ppr :: (a, b, c) -> SDoc Source #

pprPrec :: Rational -> (a, b, c) -> SDoc Source #

(idL ~ GhcPass pl, idR ~ GhcPass pr, OutputableBndrId idL, OutputableBndrId idR, Outputable body) => Outputable (StmtLR idL idR body) Source # 
Instance details

Defined in HsExpr

Methods

ppr :: StmtLR idL idR body -> SDoc Source #

pprPrec :: Rational -> StmtLR idL idR body -> SDoc Source #

(Outputable a, Outputable b, Outputable c, Outputable d) => Outputable (a, b, c, d) Source # 
Instance details

Defined in Outputable

Methods

ppr :: (a, b, c, d) -> SDoc Source #

pprPrec :: Rational -> (a, b, c, d) -> SDoc Source #

(Outputable a, Outputable b, Outputable c, Outputable d, Outputable e) => Outputable (a, b, c, d, e) Source # 
Instance details

Defined in Outputable

Methods

ppr :: (a, b, c, d, e) -> SDoc Source #

pprPrec :: Rational -> (a, b, c, d, e) -> SDoc Source #

(Outputable a, Outputable b, Outputable c, Outputable d, Outputable e, Outputable f) => Outputable (a, b, c, d, e, f) Source # 
Instance details

Defined in Outputable

Methods

ppr :: (a, b, c, d, e, f) -> SDoc Source #

pprPrec :: Rational -> (a, b, c, d, e, f) -> SDoc Source #

(Outputable a, Outputable b, Outputable c, Outputable d, Outputable e, Outputable f, Outputable g) => Outputable (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Outputable

Methods

ppr :: (a, b, c, d, e, f, g) -> SDoc Source #

pprPrec :: Rational -> (a, b, c, d, e, f, g) -> SDoc Source #

class Outputable a => OutputableBndr a where Source #

When we print a binder, we often want to print its type too. The OutputableBndr class encapsulates this idea.

Minimal complete definition

pprPrefixOcc, pprInfixOcc

Instances
OutputableBndr Name Source # 
Instance details

Defined in Name

OutputableBndr OccName Source # 
Instance details

Defined in OccName

OutputableBndr Var Source # 
Instance details

Defined in PprCore

OutputableBndr RdrName Source # 
Instance details

Defined in RdrName

OutputableBndr PatSyn Source # 
Instance details

Defined in PatSyn

OutputableBndr DataCon Source # 
Instance details

Defined in DataCon

OutputableBndr ConLike Source # 
Instance details

Defined in ConLike

OutputableBndr HsIPName Source # 
Instance details

Defined in HsTypes

OutputableBndr name => OutputableBndr (IEWrappedName name) Source # 
Instance details

Defined in HsImpExp

Outputable b => OutputableBndr (TaggedBndr b) Source # 
Instance details

Defined in PprCore

p ~ GhcPass pass => OutputableBndr (AmbiguousFieldOcc p) Source # 
Instance details

Defined in HsTypes

Pretty printing combinators

data SDoc Source #

Represents a pretty-printable document.

To display an SDoc, use printSDoc, printSDocLn, bufLeftRenderSDoc, or renderWithStyle. Avoid calling runSDoc directly as it breaks the abstraction layer.

Instances
IsString SDoc Source # 
Instance details

Defined in Outputable

Methods

fromString :: String -> SDoc #

Outputable SDoc Source # 
Instance details

Defined in Outputable

runSDoc :: SDoc -> SDocContext -> Doc Source #

interppSP :: Outputable a => [a] -> SDoc Source #

Returns the separated concatenation of the pretty printed things.

interpp'SP :: Outputable a => [a] -> SDoc Source #

Returns the comma-separated concatenation of the pretty printed things.

pprQuotedList :: Outputable a => [a] -> SDoc Source #

Returns the comma-separated concatenation of the quoted pretty printed things.

[x,y,z]  ==>  `x', `y', `z'

pprWithCommas Source #

Arguments

:: (a -> SDoc)

The pretty printing function to use

-> [a]

The things to be pretty printed

-> SDoc

SDoc where the things have been pretty printed, comma-separated and finally packed into a paragraph.

pprWithBars Source #

Arguments

:: (a -> SDoc)

The pretty printing function to use

-> [a]

The things to be pretty printed

-> SDoc

SDoc where the things have been pretty printed, bar-separated and finally packed into a paragraph.

nest :: Int -> SDoc -> SDoc Source #

Indent SDoc some specified amount

doublePrec :: Int -> Double -> SDoc Source #

doublePrec p n shows a floating point number n with p digits of precision after the decimal point.

(<>) :: SDoc -> SDoc -> SDoc Source #

Join two SDoc together horizontally without a gap

(<+>) :: SDoc -> SDoc -> SDoc Source #

Join two SDoc together horizontally with a gap between them

hcat :: [SDoc] -> SDoc Source #

Concatenate SDoc horizontally

hsep :: [SDoc] -> SDoc Source #

Concatenate SDoc horizontally with a space between each one

($$) :: SDoc -> SDoc -> SDoc Source #

Join two SDoc together vertically; if there is no vertical overlap it "dovetails" the two onto one line

($+$) :: SDoc -> SDoc -> SDoc Source #

Join two SDoc together vertically

vcat :: [SDoc] -> SDoc Source #

Concatenate SDoc vertically with dovetailing

sep :: [SDoc] -> SDoc Source #

Separate: is either like hsep or like vcat, depending on what fits

cat :: [SDoc] -> SDoc Source #

Catenate: is either like hcat or like vcat, depending on what fits

fsep :: [SDoc] -> SDoc Source #

A paragraph-fill combinator. It's much like sep, only it keeps fitting things on one line until it can't fit any more.

fcat :: [SDoc] -> SDoc Source #

This behaves like fsep, but it uses <> for horizontal conposition rather than <+>

hang Source #

Arguments

:: SDoc

The header

-> Int

Amount to indent the hung body

-> SDoc

The hung body, indented and placed below the header

-> SDoc 

hangNotEmpty :: SDoc -> Int -> SDoc -> SDoc Source #

This behaves like hang, but does not indent the second document when the header is empty.

punctuate Source #

Arguments

:: SDoc

The punctuation

-> [SDoc]

The list that will have punctuation added between every adjacent pair of elements

-> [SDoc]

Punctuated list

speakNth :: Int -> SDoc Source #

Converts an integer to a verbal index:

speakNth 1 = text "first"
speakNth 5 = text "fifth"
speakNth 21 = text "21st"

speakN :: Int -> SDoc Source #

Converts an integer to a verbal multiplicity:

speakN 0 = text "none"
speakN 5 = text "five"
speakN 10 = text "10"

speakNOf :: Int -> SDoc -> SDoc Source #

Converts an integer and object description to a statement about the multiplicity of those objects:

speakNOf 0 (text "melon") = text "no melons"
speakNOf 1 (text "melon") = text "one melon"
speakNOf 3 (text "melon") = text "three melons"

plural :: [a] -> SDoc Source #

Determines the pluralisation suffix appropriate for the length of a list:

plural [] = char 's'
plural ["Hello"] = empty
plural ["Hello", "World"] = char 's'

isOrAre :: [a] -> SDoc Source #

Determines the form of to be appropriate for the length of a list:

isOrAre [] = text "are"
isOrAre ["Hello"] = text "is"
isOrAre ["Hello", "World"] = text "are"

doOrDoes :: [a] -> SDoc Source #

Determines the form of to do appropriate for the length of a list:

doOrDoes [] = text "do"
doOrDoes ["Hello"] = text "does"
doOrDoes ["Hello", "World"] = text "do"

coloured :: PprColour -> SDoc -> SDoc Source #

Apply the given colour/style for the argument.

Only takes effect if colours are enabled.

Converting SDoc into strings and outputing it

printSDoc :: Mode -> DynFlags -> Handle -> PprStyle -> SDoc -> IO () Source #

The analog of printDoc_ for SDoc, which tries to make sure the terminal doesn't get screwed up by the ANSI color codes if an exception is thrown during pretty-printing.

printSDocLn :: Mode -> DynFlags -> Handle -> PprStyle -> SDoc -> IO () Source #

Like printSDoc but appends an extra newline.

printForC :: DynFlags -> Handle -> SDoc -> IO () Source #

Like printSDocLn but specialized with LeftMode and PprCode CStyle. This is typically used to output C-- code.

bufLeftRenderSDoc :: DynFlags -> BufHandle -> PprStyle -> SDoc -> IO () Source #

An efficient variant of printSDoc specialized for LeftMode that outputs to a BufHandle.

pprHsChar :: Char -> SDoc Source #

Special combinator for showing character literals.

pprHsString :: FastString -> SDoc Source #

Special combinator for showing string literals.

pprHsBytes :: ByteString -> SDoc Source #

Special combinator for showing bytestring literals.

pprPrimChar :: Char -> SDoc Source #

Special combinator for showing unboxed literals.

pprFilePathString :: FilePath -> SDoc Source #

Normalise, escape and render a string representing a path

e.g. "c:\whatever"

Controlling the style in which output is printed

data BindingSite Source #

BindingSite is used to tell the thing that prints binder what language construct is binding the identifier. This can be used to decide how much info to print. Also see Note [Binding-site specific printing] in PprCore

Constructors

LambdaBind

The x in (x. e)

CaseBind

The x in case scrut of x { (y,z) -> ... }

CasePatBind

The y,z in case scrut of x { (y,z) -> ... }

LetBind

The x in (let x = rhs in e)

data PprStyle Source #

Instances
Outputable PprStyle Source # 
Instance details

Defined in Outputable

data CodeStyle Source #

Constructors

CStyle 
AsmStyle 

data PrintUnqualified Source #

When printing code that contains original names, we need to map the original names back to something the user understands. This is the purpose of the triple of functions that gets passed around when rendering SDoc.

type QueryQualifyName = Module -> OccName -> QualifyName Source #

Given a Name's Module and OccName, decide whether and how to qualify it.

type QueryQualifyModule = Module -> Bool Source #

For a given module, we need to know whether to print it with a package name to disambiguate it.

type QueryQualifyPackage = UnitId -> Bool Source #

For a given package, we need to know whether to print it with the component id to disambiguate it.

alwaysQualifyNames :: QueryQualifyName Source #

NB: This won't ever show package IDs

withPprStyleDoc :: DynFlags -> PprStyle -> SDoc -> Doc Source #

This is not a recommended way to render SDoc, since it breaks the abstraction layer of SDoc. Prefer to use printSDoc, printSDocLn, bufLeftRenderSDoc, or renderWithStyle instead.

pprDeeperList :: ([SDoc] -> SDoc) -> [SDoc] -> SDoc Source #

Truncate a list that is longer than the current depth.

mkErrStyle :: DynFlags -> PrintUnqualified -> PprStyle Source #

Style for printing error messages

data Depth Source #

Constructors

AllTheWay 
PartWay Int 

ifPprDebug :: SDoc -> SDoc -> SDoc Source #

Says what to do with and without -dppr-debug

whenPprDebug :: SDoc -> SDoc Source #

Says what to do with -dppr-debug; without, return empty

Error handling and debugging utilities

pprPanic :: HasCallStack => String -> SDoc -> a Source #

Throw an exception saying "bug in GHC"

pprSorry :: String -> SDoc -> a Source #

Throw an exception saying "this isn't finished yet"

assertPprPanic :: HasCallStack => String -> Int -> SDoc -> a Source #

Panic with an assertation failure, recording the given file and line number. Should typically be accessed with the ASSERT family of macros

pprPgmError :: String -> SDoc -> a Source #

Throw an exception saying "bug in pgm being compiled" (used for unusual program errors)

pprTrace :: String -> SDoc -> a -> a Source #

If debug output is on, show some SDoc on the screen

pprTraceDebug :: String -> SDoc -> a -> a Source #

pprTraceWith :: Outputable a => String -> (a -> SDoc) -> a -> a Source #

pprTraceWith desc f x is equivalent to pprTrace desc (f x) x. This allows you to print details from the returned value as well as from ambient variables.

pprTraceIt :: Outputable a => String -> a -> a Source #

pprTraceIt desc x is equivalent to pprTrace desc (ppr x) x

warnPprTrace :: HasCallStack => Bool -> String -> Int -> SDoc -> a -> a Source #

Just warn about an assertion failure, recording the given file and line number. Should typically be accessed with the WARN macros

pprSTrace :: HasCallStack => SDoc -> a -> a Source #

If debug output is on, show some SDoc on the screen along with a call stack when available.

pprTraceException :: ExceptionMonad m => String -> SDoc -> m a -> m a Source #

pprTraceException desc x action runs action, printing a message if it throws an exception.

trace :: String -> a -> a #

The trace function outputs the trace message given as its first argument, before returning the second argument as its result.

For example, this returns the value of f x but first outputs the message.

>>> let x = 123; f = show
>>> trace ("calling f with x = " ++ show x) (f x)
"calling f with x = 123
123"

The trace function should only be used for debugging, or for monitoring execution. The function is not referentially transparent: its type indicates that it is a pure function but it has the side effect of outputting the trace message.

pgmError :: String -> a Source #

Panics and asserts.

panic :: String -> a Source #

Panics and asserts.

sorry :: String -> a Source #

Panics and asserts.

assertPanic :: String -> Int -> a Source #

Throw a failed assertion exception for a given filename and line number.

pprDebugAndThen :: DynFlags -> (String -> a) -> SDoc -> SDoc -> a Source #