ghc-8.0.0.20160111: The GHC API

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

Class designating that some type has an SDoc representation

Methods

ppr :: a -> SDoc

pprPrec :: Rational -> a -> SDoc

Instances

Outputable Bool 

Methods

ppr :: Bool -> SDoc

pprPrec :: Rational -> Bool -> SDoc

Outputable Char 

Methods

ppr :: Char -> SDoc

pprPrec :: Rational -> Char -> SDoc

Outputable Int 

Methods

ppr :: Int -> SDoc

pprPrec :: Rational -> Int -> SDoc

Outputable Int32 

Methods

ppr :: Int32 -> SDoc

pprPrec :: Rational -> Int32 -> SDoc

Outputable Int64 

Methods

ppr :: Int64 -> SDoc

pprPrec :: Rational -> Int64 -> SDoc

Outputable Ordering 
Outputable Word 

Methods

ppr :: Word -> SDoc

pprPrec :: Rational -> Word -> SDoc

Outputable Word16 

Methods

ppr :: Word16 -> SDoc

pprPrec :: Rational -> Word16 -> SDoc

Outputable Word32 

Methods

ppr :: Word32 -> SDoc

pprPrec :: Rational -> Word32 -> SDoc

Outputable () 

Methods

ppr :: () -> SDoc

pprPrec :: Rational -> () -> SDoc

Outputable Fingerprint 
Outputable Serialized 
Outputable PrimOp 

Methods

ppr :: PrimOp -> SDoc

pprPrec :: Rational -> PrimOp -> SDoc

Outputable OccName 

Methods

ppr :: OccName -> SDoc

pprPrec :: Rational -> OccName -> SDoc

Outputable FastString 
Outputable UnitId 

Methods

ppr :: UnitId -> SDoc

pprPrec :: Rational -> UnitId -> SDoc

Outputable ModuleName 
Outputable Module 

Methods

ppr :: Module -> SDoc

pprPrec :: Rational -> Module -> SDoc

Outputable Name 

Methods

ppr :: Name -> SDoc

pprPrec :: Rational -> Name -> SDoc

Outputable PprStyle 
Outputable SrcSpan 

Methods

ppr :: SrcSpan -> SDoc

pprPrec :: Rational -> SrcSpan -> SDoc

Outputable RealSrcSpan 
Outputable SrcLoc 

Methods

ppr :: SrcLoc -> SDoc

pprPrec :: Rational -> SrcLoc -> SDoc

Outputable RealSrcLoc 
Outputable TCvSubst 
Outputable UnivCoProvenance 
Outputable LeftOrRight 
Outputable Coercion 
Outputable TyThing 

Methods

ppr :: TyThing -> SDoc

pprPrec :: Rational -> TyThing -> SDoc

Outputable TyBinder 
Outputable Type 

Methods

ppr :: Type -> SDoc

pprPrec :: Rational -> Type -> SDoc

Outputable MetaDetails 
Outputable IdDetails 
Outputable HsDocString 
Outputable IntWithInf 
Outputable FractionalLit 
Outputable InlineSpec 
Outputable InlinePragma 
Outputable RuleMatchInfo 
Outputable Activation 
Outputable CompilerPhase 
Outputable SuccessFlag 
Outputable OccInfo 

Methods

ppr :: OccInfo -> SDoc

pprPrec :: Rational -> OccInfo -> SDoc

Outputable OverlapMode 
Outputable OverlapFlag 
Outputable Origin 

Methods

ppr :: Origin -> SDoc

pprPrec :: Rational -> Origin -> SDoc

Outputable RecFlag 

Methods

ppr :: RecFlag -> SDoc

pprPrec :: Rational -> RecFlag -> SDoc

Outputable Boxity 

Methods

ppr :: Boxity -> SDoc

pprPrec :: Rational -> Boxity -> SDoc

Outputable TopLevelFlag 
Outputable FixityDirection 
Outputable Fixity 

Methods

ppr :: Fixity -> SDoc

pprPrec :: Rational -> Fixity -> SDoc

Outputable WarningTxt 
Outputable FunctionOrData 
Outputable SwapFlag 
Outputable OneShotInfo 
Outputable Unique 

Methods

ppr :: Unique -> SDoc

pprPrec :: Rational -> Unique -> SDoc

Outputable Phase 

Methods

ppr :: Phase -> SDoc

pprPrec :: Rational -> Phase -> SDoc

Outputable RegClass 
Outputable Reg

Print a reg in a generic manner If you want the architecture specific names, then use the pprReg function from the appropriate Ppr module.

Methods

ppr :: Reg -> SDoc

pprPrec :: Rational -> Reg -> SDoc

Outputable RealReg 

Methods

ppr :: RealReg -> SDoc

pprPrec :: Rational -> RealReg -> SDoc

Outputable VirtualReg 
Outputable ModLocation 
Outputable CType 

Methods

ppr :: CType -> SDoc

pprPrec :: Rational -> CType -> SDoc

Outputable Header 

Methods

ppr :: Header -> SDoc

pprPrec :: Rational -> Header -> SDoc

Outputable CCallConv 
Outputable CCallSpec 
Outputable CExportSpec 
Outputable Safety 

Methods

ppr :: Safety -> SDoc

pprPrec :: Rational -> Safety -> SDoc

Outputable ForeignCall 
Outputable PackageName 
Outputable SourcePackageId 
Outputable ComponentId 
Outputable GhcMode 

Methods

ppr :: GhcMode -> SDoc

pprPrec :: Rational -> GhcMode -> SDoc

Outputable SafeHaskellMode 
Outputable Annotation 
Outputable AvailInfo 
Outputable ImportSpec 
Outputable Parent 

Methods

ppr :: Parent -> SDoc

pprPrec :: Rational -> Parent -> SDoc

Outputable GlobalRdrElt 
Outputable LocalRdrEnv 
Outputable RdrName 

Methods

ppr :: RdrName -> SDoc

pprPrec :: Rational -> RdrName -> SDoc

Outputable AnnotationComment 
Outputable AnnKeywordId 
Outputable Var 

Methods

ppr :: Var -> SDoc

pprPrec :: Rational -> Var -> SDoc

Outputable CostCentreStack 
Outputable CostCentre 
Outputable PatSyn 

Methods

ppr :: PatSyn -> SDoc

pprPrec :: Rational -> PatSyn -> SDoc

Outputable InScopeSet 
Outputable ArgDescr 
Outputable ClosureTypeInfo 
Outputable SMRep 

Methods

ppr :: SMRep -> SDoc

pprPrec :: Rational -> SMRep -> SDoc

Outputable StgHalfWord 
Outputable StgWord 

Methods

ppr :: StgWord -> SDoc

pprPrec :: Rational -> StgWord -> SDoc

Outputable Width 

Methods

ppr :: Width -> SDoc

pprPrec :: Rational -> Width -> SDoc

Outputable CmmType 

Methods

ppr :: CmmType -> SDoc

pprPrec :: Rational -> CmmType -> SDoc

Outputable Token 

Methods

ppr :: Token -> SDoc

pprPrec :: Rational -> Token -> SDoc

Outputable ModuleOrigin 
Outputable TyCon 

Methods

ppr :: TyCon -> SDoc

pprPrec :: Rational -> TyCon -> SDoc

Outputable EqSpec 

Methods

ppr :: EqSpec -> SDoc

pprPrec :: Rational -> EqSpec -> SDoc

Outputable DataCon 

Methods

ppr :: DataCon -> SDoc

pprPrec :: Rational -> DataCon -> SDoc

Outputable ConLike 

Methods

ppr :: ConLike -> SDoc

pprPrec :: Rational -> ConLike -> SDoc

Outputable Class 

Methods

ppr :: Class -> SDoc

pprPrec :: Rational -> Class -> SDoc

Outputable CoAxiomRule 
Outputable Role 

Methods

ppr :: Role -> SDoc

pprPrec :: Rational -> Role -> SDoc

Outputable CoAxBranch 
Outputable PrimElemRep 
Outputable PrimRep 

Methods

ppr :: PrimRep -> SDoc

pprPrec :: Rational -> PrimRep -> SDoc

Outputable AlgTyConFlav 
Outputable LiftingContext 
Outputable CoercionHole 
Outputable VisibilityFlag 
Outputable EqRel 

Methods

ppr :: EqRel -> SDoc

pprPrec :: Rational -> EqRel -> SDoc

Outputable RepType 

Methods

ppr :: RepType -> SDoc

pprPrec :: Rational -> RepType -> SDoc

Outputable StrictnessMark 
Outputable SrcUnpackedness 
Outputable SrcStrictness 
Outputable HsImplBang 
Outputable HsSrcBang 
Outputable StrictSig 
Outputable DmdType 

Methods

ppr :: DmdType -> SDoc

pprPrec :: Rational -> DmdType -> SDoc

Outputable CPRResult 
Outputable TypeShape 
Outputable CleanDemand 
Outputable Count 

Methods

ppr :: Count -> SDoc

pprPrec :: Rational -> Count -> SDoc

Outputable UseDmd 

Methods

ppr :: UseDmd -> SDoc

pprPrec :: Rational -> UseDmd -> SDoc

Outputable StrDmd 

Methods

ppr :: StrDmd -> SDoc

pprPrec :: Rational -> StrDmd -> SDoc

Outputable Literal 

Methods

ppr :: Literal -> SDoc

pprPrec :: Rational -> Literal -> SDoc

Outputable AltCon 

Methods

ppr :: AltCon -> SDoc

pprPrec :: Rational -> AltCon -> SDoc

Outputable TickBoxOp 
Outputable CafInfo 

Methods

ppr :: CafInfo -> SDoc

pprPrec :: Rational -> CafInfo -> SDoc

Outputable RecSelParent 
Outputable UnVarGraph 
Outputable UnVarSet 
Outputable CoreStats 
Outputable FamInstMatch 
Outputable FamInst 

Methods

ppr :: FamInst -> SDoc

pprPrec :: Rational -> FamInst -> SDoc

Outputable PrimCall 
Outputable ForeignLabelSource 
Outputable CLabel 

Methods

ppr :: CLabel -> SDoc

pprPrec :: Rational -> CLabel -> SDoc

Outputable CmmTickScope 
Outputable UnwindExpr 
Outputable DebugBlock 
Outputable LlvmCastOp 
Outputable LlvmCmpOp 
Outputable LlvmMachOp 
Outputable LlvmLinkageType 
Outputable LlvmCallConvention 
Outputable LlvmFuncAttr 
Outputable LlvmParamAttr 
Outputable LlvmFunctionDecl 
Outputable LlvmStatic 
Outputable LlvmLit 

Methods

ppr :: LlvmLit -> SDoc

pprPrec :: Rational -> LlvmLit -> SDoc

Outputable LlvmVar 

Methods

ppr :: LlvmVar -> SDoc

pprPrec :: Rational -> LlvmVar -> SDoc

Outputable LlvmType 
Outputable MetaExpr 
Outputable ParamLocation 
Outputable LiveInfo 
Outputable Loc 

Methods

ppr :: Loc -> SDoc

pprPrec :: Rational -> Loc -> SDoc

Outputable SpillStats 
Outputable TopSRT 

Methods

ppr :: TopSRT -> SDoc

pprPrec :: Rational -> TopSRT -> SDoc

Outputable Status 

Methods

ppr :: Status -> SDoc

pprPrec :: Rational -> Status -> SDoc

Outputable UpdateFlag 
Outputable AltType 

Methods

ppr :: AltType -> SDoc

pprPrec :: Rational -> AltType -> SDoc

Outputable CgBreakInfo 
Outputable UnlinkedBCO 
Outputable CompiledByteCode 
Outputable TcLevel 

Methods

ppr :: TcLevel -> SDoc

pprPrec :: Rational -> TcLevel -> SDoc

Outputable CgLoc 

Methods

ppr :: CgLoc -> SDoc

pprPrec :: Rational -> CgLoc -> SDoc

Outputable Sequel 

Methods

ppr :: Sequel -> SDoc

pprPrec :: Rational -> Sequel -> SDoc

Outputable CgIdInfo 
Outputable ArgRep 

Methods

ppr :: ArgRep -> SDoc

pprPrec :: Rational -> ArgRep -> SDoc

Outputable BCInstr 

Methods

ppr :: BCInstr -> SDoc

pprPrec :: Rational -> BCInstr -> SDoc

Outputable ClsInst 

Methods

ppr :: ClsInst -> SDoc

pprPrec :: Rational -> ClsInst -> SDoc

Outputable EvCallStack 
Outputable EvLit 

Methods

ppr :: EvLit -> SDoc

pprPrec :: Rational -> EvLit -> SDoc

Outputable EvTypeable 
Outputable EvTerm 

Methods

ppr :: EvTerm -> SDoc

pprPrec :: Rational -> EvTerm -> SDoc

Outputable EvBind 

Methods

ppr :: EvBind -> SDoc

pprPrec :: Rational -> EvBind -> SDoc

Outputable EvBindsVar 
Outputable TcEvBinds 
Outputable HsWrapper 
Outputable OverLitVal 
Outputable HsLit 

Methods

ppr :: HsLit -> SDoc

pprPrec :: Rational -> HsLit -> SDoc

Outputable HsTyLit 

Methods

ppr :: HsTyLit -> SDoc

pprPrec :: Rational -> HsTyLit -> SDoc

Outputable HsIPName 
Outputable TcSpecPrag 
Outputable DocDecl 

Methods

ppr :: DocDecl -> SDoc

pprPrec :: Rational -> DocDecl -> SDoc

Outputable ForeignExport 
Outputable ForeignImport 
Outputable NewOrData 
Outputable PendingTcSplice 
Outputable PendingRnSplice 
Outputable Subst 

Methods

ppr :: Subst -> SDoc

pprPrec :: Rational -> Subst -> SDoc

Outputable CallCtxt 
Outputable ArgSummary 
Outputable PmLit 

Methods

ppr :: PmLit -> SDoc

pprPrec :: Rational -> PmLit -> SDoc

Outputable PmExpr 

Methods

ppr :: PmExpr -> SDoc

pprPrec :: Rational -> PmExpr -> SDoc

Outputable IfaceCoercion 
Outputable IfaceTyCon 
Outputable IfaceTcArgs 
Outputable IfaceForAllBndr 
Outputable IfaceTyLit 
Outputable IfaceType 
Outputable IfaceBndr 
Outputable IfaceConAlt 
Outputable IfaceExpr 
Outputable IfaceIdDetails 
Outputable IfaceUnfolding 
Outputable IfaceInfoItem 
Outputable IfaceIdInfo 
Outputable IfaceAnnotation 
Outputable IfaceRule 
Outputable IfaceFamInst 
Outputable IfaceClsInst 
Outputable IfaceAT 

Methods

ppr :: IfaceAT -> SDoc

pprPrec :: Rational -> IfaceAT -> SDoc

Outputable IfaceClassOp 
Outputable IfaceTyConParent 
Outputable IfaceDecl 
Outputable Unlinked 
Outputable Linkable 
Outputable IfaceTrustInfo 
Outputable IfaceVectInfo 
Outputable VectInfo 
Outputable ModSummary 
Outputable FixItem 

Methods

ppr :: FixItem -> SDoc

pprPrec :: Rational -> FixItem -> SDoc

Outputable InteractiveImport 
Outputable TargetId 
Outputable Target 

Methods

ppr :: Target -> SDoc

pprPrec :: Rational -> Target -> SDoc

Outputable PhasePlus 
Outputable TypeOrKind 
Outputable ErrorThing 
Outputable CtOrigin 
Outputable SkolemInfo 
Outputable SubGoalDepth 
Outputable CtFlavour 
Outputable CtEvidence 
Outputable TcEvDest 
Outputable ImplicStatus 
Outputable Implication 
Outputable WantedConstraints 
Outputable Ct 

Methods

ppr :: Ct -> SDoc

pprPrec :: Rational -> Ct -> SDoc

Outputable TcPatSynInfo 
Outputable TcIdSigBndr 
Outputable TcIdSigInfo 
Outputable TcSigInfo 
Outputable WhereFrom 
Outputable PromotionErr 
Outputable TcTyThing 
Outputable ThStage 

Methods

ppr :: ThStage -> SDoc

pprPrec :: Rational -> ThStage -> SDoc

Outputable TcIdBinder 
Outputable FloatBind 
Outputable Tick 

Methods

ppr :: Tick -> SDoc

pprPrec :: Rational -> Tick -> SDoc

Outputable FloatOutSwitches 
Outputable SimplifierMode 
Outputable CoreToDo 
Outputable FloatSpec 
Outputable Level 

Methods

ppr :: Level -> SDoc

pprPrec :: Rational -> Level -> SDoc

Outputable Floats 

Methods

ppr :: Floats -> SDoc

pprPrec :: Rational -> Floats -> SDoc

Outputable SimplSR 

Methods

ppr :: SimplSR -> SDoc

pprPrec :: Rational -> SimplSR -> SDoc

Outputable ArgSpec 

Methods

ppr :: ArgSpec -> SDoc

pprPrec :: Rational -> ArgSpec -> SDoc

Outputable DupFlag 

Methods

ppr :: DupFlag -> SDoc

pprPrec :: Rational -> DupFlag -> SDoc

Outputable SimplCont 
Outputable EquationInfo 
Outputable ClosureType 
Outputable Term 

Methods

ppr :: Term -> SDoc

pprPrec :: Rational -> Term -> SDoc

Outputable InertCans 
Outputable InertSet 
Outputable WorkList 
Outputable CompRepr 
Outputable ProdRepr 
Outputable ConRepr 

Methods

ppr :: ConRepr -> SDoc

pprPrec :: Rational -> ConRepr -> SDoc

Outputable SumRepr 

Methods

ppr :: SumRepr -> SDoc

pprPrec :: Rational -> SumRepr -> SDoc

Outputable CoreModule 
Outputable a => Outputable [a] 

Methods

ppr :: [a] -> SDoc

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

Outputable a => Outputable (Maybe a) 

Methods

ppr :: Maybe a -> SDoc

pprPrec :: Rational -> Maybe a -> SDoc

Outputable elt => Outputable (IntMap elt) 

Methods

ppr :: IntMap elt -> SDoc

pprPrec :: Rational -> IntMap elt -> SDoc

Outputable a => Outputable (Set a) 

Methods

ppr :: Set a -> SDoc

pprPrec :: Rational -> Set a -> SDoc

Outputable a => Outputable (SCC a) 

Methods

ppr :: SCC a -> SDoc

pprPrec :: Rational -> SCC a -> SDoc

Outputable a => Outputable (Pair a) 

Methods

ppr :: Pair a -> SDoc

pprPrec :: Rational -> Pair a -> SDoc

Outputable a => Outputable (OrdList a) 

Methods

ppr :: OrdList a -> SDoc

pprPrec :: Rational -> OrdList a -> SDoc

Outputable a => Outputable (Bag a) 

Methods

ppr :: Bag a -> SDoc

pprPrec :: Rational -> Bag a -> SDoc

Outputable node => Outputable (Graph node) 

Methods

ppr :: Graph node -> SDoc

pprPrec :: Rational -> Graph node -> SDoc

Outputable (DefMethSpec ty) 

Methods

ppr :: DefMethSpec ty -> SDoc

pprPrec :: Rational -> DefMethSpec ty -> SDoc

Outputable a => Outputable (UniqFM a) 

Methods

ppr :: UniqFM a -> SDoc

pprPrec :: Rational -> UniqFM a -> SDoc

Outputable a => Outputable (UniqDFM a) 

Methods

ppr :: UniqDFM a -> SDoc

pprPrec :: Rational -> UniqDFM a -> SDoc

Outputable a => Outputable (BooleanFormula a) 
Outputable a => Outputable (OccEnv a) 

Methods

ppr :: OccEnv a -> SDoc

pprPrec :: Rational -> OccEnv a -> SDoc

Outputable name => Outputable (AnnTarget name) 

Methods

ppr :: AnnTarget name -> SDoc

pprPrec :: Rational -> AnnTarget name -> SDoc

Outputable a => Outputable (FieldLbl a) 

Methods

ppr :: FieldLbl a -> SDoc

pprPrec :: Rational -> FieldLbl a -> SDoc

(HasOccName name, OutputableBndr name) => Outputable (IE name) 

Methods

ppr :: IE name -> SDoc

pprPrec :: Rational -> IE name -> SDoc

(OutputableBndr name, HasOccName name) => Outputable (ImportDecl name) 

Methods

ppr :: ImportDecl name -> SDoc

pprPrec :: Rational -> ImportDecl name -> SDoc

Outputable (CoAxiom br) 

Methods

ppr :: CoAxiom br -> SDoc

pprPrec :: Rational -> CoAxiom br -> SDoc

Outputable a => Outputable (UnifyResultM a) 
Outputable b => Outputable (TaggedBndr b) 

Methods

ppr :: TaggedBndr b -> SDoc

pprPrec :: Rational -> TaggedBndr b -> SDoc

Outputable a => Outputable (CoreMap a) 

Methods

ppr :: CoreMap a -> SDoc

pprPrec :: Rational -> CoreMap a -> SDoc

Outputable instr => Outputable (ListGraph instr) 

Methods

ppr :: ListGraph instr -> SDoc

pprPrec :: Rational -> ListGraph instr -> SDoc

Outputable instr => Outputable (GenBasicBlock instr) 

Methods

ppr :: GenBasicBlock instr -> SDoc

pprPrec :: Rational -> GenBasicBlock instr -> SDoc

Outputable instr => Outputable (LiveInstr instr) 

Methods

ppr :: LiveInstr instr -> SDoc

pprPrec :: Rational -> LiveInstr instr -> SDoc

Outputable instr => Outputable (InstrSR instr) 

Methods

ppr :: InstrSR instr -> SDoc

pprPrec :: Rational -> InstrSR instr -> SDoc

Outputable bdee => Outputable (GenStgArg bdee) 

Methods

ppr :: GenStgArg bdee -> SDoc

pprPrec :: Rational -> GenStgArg bdee -> SDoc

Outputable a => Outputable (NonVoid a) 

Methods

ppr :: NonVoid a -> SDoc

pprPrec :: Rational -> NonVoid a -> SDoc

Outputable a => Outputable (ProtoBCO a) 

Methods

ppr :: ProtoBCO a -> SDoc

pprPrec :: Rational -> ProtoBCO a -> SDoc

OutputableBndr name => Outputable (Pat name) 

Methods

ppr :: Pat name -> SDoc

pprPrec :: Rational -> Pat name -> SDoc

OutputableBndr id => Outputable (HsSplice id) 

Methods

ppr :: HsSplice id -> SDoc

pprPrec :: Rational -> HsSplice id -> SDoc

OutputableBndr id => Outputable (HsCmd id) 

Methods

ppr :: HsCmd id -> SDoc

pprPrec :: Rational -> HsCmd id -> SDoc

OutputableBndr id => Outputable (HsExpr id) 

Methods

ppr :: HsExpr id -> SDoc

pprPrec :: Rational -> HsExpr id -> SDoc

OutputableBndr id => Outputable (HsOverLit id) 

Methods

ppr :: HsOverLit id -> SDoc

pprPrec :: Rational -> HsOverLit id -> SDoc

Outputable (AmbiguousFieldOcc name) 
Outputable (FieldOcc name) 

Methods

ppr :: FieldOcc name -> SDoc

pprPrec :: Rational -> FieldOcc name -> SDoc

OutputableBndr name => Outputable (ConDeclField name) 

Methods

ppr :: ConDeclField name -> SDoc

pprPrec :: Rational -> ConDeclField name -> SDoc

OutputableBndr name => Outputable (HsAppType name) 

Methods

ppr :: HsAppType name -> SDoc

pprPrec :: Rational -> HsAppType name -> SDoc

Outputable (HsWildCardInfo name) 

Methods

ppr :: HsWildCardInfo name -> SDoc

pprPrec :: Rational -> HsWildCardInfo name -> SDoc

OutputableBndr name => Outputable (HsType name) 

Methods

ppr :: HsType name -> SDoc

pprPrec :: Rational -> HsType name -> SDoc

OutputableBndr name => Outputable (HsTyVarBndr name) 

Methods

ppr :: HsTyVarBndr name -> SDoc

pprPrec :: Rational -> HsTyVarBndr name -> SDoc

OutputableBndr name => Outputable (LHsQTyVars name) 

Methods

ppr :: LHsQTyVars name -> SDoc

pprPrec :: Rational -> LHsQTyVars name -> SDoc

Outputable a => Outputable (RecordPatSynField a) 
OutputableBndr name => Outputable (FixitySig name) 

Methods

ppr :: FixitySig name -> SDoc

pprPrec :: Rational -> FixitySig name -> SDoc

OutputableBndr name => Outputable (Sig name) 

Methods

ppr :: Sig name -> SDoc

pprPrec :: Rational -> Sig name -> SDoc

OutputableBndr id => Outputable (IPBind id) 

Methods

ppr :: IPBind id -> SDoc

pprPrec :: Rational -> IPBind id -> SDoc

OutputableBndr id => Outputable (HsIPBinds id) 

Methods

ppr :: HsIPBinds id -> SDoc

pprPrec :: Rational -> HsIPBinds id -> SDoc

OutputableBndr id => Outputable (ABExport id) 

Methods

ppr :: ABExport id -> SDoc

pprPrec :: Rational -> ABExport id -> SDoc

OutputableBndr name => Outputable (RoleAnnotDecl name) 

Methods

ppr :: RoleAnnotDecl name -> SDoc

pprPrec :: Rational -> RoleAnnotDecl name -> SDoc

OutputableBndr name => Outputable (AnnDecl name) 

Methods

ppr :: AnnDecl name -> SDoc

pprPrec :: Rational -> AnnDecl name -> SDoc

OutputableBndr name => Outputable (WarnDecl name) 

Methods

ppr :: WarnDecl name -> SDoc

pprPrec :: Rational -> WarnDecl name -> SDoc

OutputableBndr name => Outputable (WarnDecls name) 

Methods

ppr :: WarnDecls name -> SDoc

pprPrec :: Rational -> WarnDecls name -> SDoc

OutputableBndr name => Outputable (VectDecl name) 

Methods

ppr :: VectDecl name -> SDoc

pprPrec :: Rational -> VectDecl name -> SDoc

OutputableBndr name => Outputable (RuleBndr name) 

Methods

ppr :: RuleBndr name -> SDoc

pprPrec :: Rational -> RuleBndr name -> SDoc

OutputableBndr name => Outputable (RuleDecl name) 

Methods

ppr :: RuleDecl name -> SDoc

pprPrec :: Rational -> RuleDecl name -> SDoc

OutputableBndr name => Outputable (RuleDecls name) 

Methods

ppr :: RuleDecls name -> SDoc

pprPrec :: Rational -> RuleDecls name -> SDoc

OutputableBndr name => Outputable (ForeignDecl name) 

Methods

ppr :: ForeignDecl name -> SDoc

pprPrec :: Rational -> ForeignDecl name -> SDoc

OutputableBndr name => Outputable (DefaultDecl name) 

Methods

ppr :: DefaultDecl name -> SDoc

pprPrec :: Rational -> DefaultDecl name -> SDoc

OutputableBndr name => Outputable (DerivDecl name) 

Methods

ppr :: DerivDecl name -> SDoc

pprPrec :: Rational -> DerivDecl name -> SDoc

OutputableBndr name => Outputable (InstDecl name) 

Methods

ppr :: InstDecl name -> SDoc

pprPrec :: Rational -> InstDecl name -> SDoc

OutputableBndr name => Outputable (ClsInstDecl name) 

Methods

ppr :: ClsInstDecl name -> SDoc

pprPrec :: Rational -> ClsInstDecl name -> SDoc

OutputableBndr name => Outputable (DataFamInstDecl name) 
OutputableBndr name => Outputable (TyFamInstDecl name) 

Methods

ppr :: TyFamInstDecl name -> SDoc

pprPrec :: Rational -> TyFamInstDecl name -> SDoc

OutputableBndr name => Outputable (ConDecl name) 

Methods

ppr :: ConDecl name -> SDoc

pprPrec :: Rational -> ConDecl name -> SDoc

OutputableBndr name => Outputable (HsDataDefn name) 

Methods

ppr :: HsDataDefn name -> SDoc

pprPrec :: Rational -> HsDataDefn name -> SDoc

Outputable (FamilyInfo name) 

Methods

ppr :: FamilyInfo name -> SDoc

pprPrec :: Rational -> FamilyInfo name -> SDoc

OutputableBndr name => Outputable (FamilyDecl name) 

Methods

ppr :: FamilyDecl name -> SDoc

pprPrec :: Rational -> FamilyDecl name -> SDoc

OutputableBndr name => Outputable (TyClGroup name) 

Methods

ppr :: TyClGroup name -> SDoc

pprPrec :: Rational -> TyClGroup name -> SDoc

OutputableBndr name => Outputable (TyClDecl name) 

Methods

ppr :: TyClDecl name -> SDoc

pprPrec :: Rational -> TyClDecl name -> SDoc

OutputableBndr name => Outputable (SpliceDecl name) 

Methods

ppr :: SpliceDecl name -> SDoc

pprPrec :: Rational -> SpliceDecl name -> SDoc

OutputableBndr name => Outputable (HsGroup name) 

Methods

ppr :: HsGroup name -> SDoc

pprPrec :: Rational -> HsGroup name -> SDoc

OutputableBndr name => Outputable (HsDecl name) 

Methods

ppr :: HsDecl name -> SDoc

pprPrec :: Rational -> HsDecl name -> SDoc

OutputableBndr id => Outputable (ArithSeqInfo id) 
OutputableBndr id => Outputable (HsBracket id) 

Methods

ppr :: HsBracket id -> SDoc

pprPrec :: Rational -> HsBracket id -> SDoc

OutputableBndr id => Outputable (HsCmdTop id) 

Methods

ppr :: HsCmdTop id -> SDoc

pprPrec :: Rational -> HsCmdTop id -> SDoc

(OutputableBndr name, HasOccName name) => Outputable (HsModule name) 

Methods

ppr :: HsModule name -> SDoc

pprPrec :: Rational -> HsModule name -> SDoc

OutputableBndr a => Outputable (InstInfo a) 

Methods

ppr :: InstInfo a -> SDoc

pprPrec :: Rational -> InstInfo a -> SDoc

Outputable a => Outputable (StopOrContinue a) 
(Outputable a, Outputable b) => Outputable (Either a b) 

Methods

ppr :: Either a b -> SDoc

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

(Outputable a, Outputable b) => Outputable (a, b) 

Methods

ppr :: (a, b) -> SDoc

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

(Outputable key, Outputable elt) => Outputable (Map key elt) 

Methods

ppr :: Map key elt -> SDoc

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

(Outputable l, Outputable e) => Outputable (GenLocated l e) 

Methods

ppr :: GenLocated l e -> SDoc

pprPrec :: Rational -> GenLocated l e -> SDoc

(Outputable statics, Outputable instr) => Outputable (RegAllocStats statics instr) 

Methods

ppr :: RegAllocStats statics instr -> SDoc

pprPrec :: Rational -> RegAllocStats statics instr -> SDoc

(OutputableBndr bndr, Outputable bdee, Ord bdee) => Outputable (GenStgRhs bndr bdee) 

Methods

ppr :: GenStgRhs bndr bdee -> SDoc

pprPrec :: Rational -> GenStgRhs bndr bdee -> SDoc

(OutputableBndr bndr, Outputable bdee, Ord bdee) => Outputable (GenStgExpr bndr bdee) 

Methods

ppr :: GenStgExpr bndr bdee -> SDoc

pprPrec :: Rational -> GenStgExpr bndr bdee -> SDoc

(OutputableBndr bndr, Outputable bdee, Ord bdee) => Outputable (GenStgBinding bndr bdee) 

Methods

ppr :: GenStgBinding bndr bdee -> SDoc

pprPrec :: Rational -> GenStgBinding bndr bdee -> SDoc

(Outputable arg, Outputable rec) => Outputable (HsConDetails arg rec) 

Methods

ppr :: HsConDetails arg rec -> SDoc

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

Outputable thing => Outputable (HsWildCardBndrs name thing) 

Methods

ppr :: HsWildCardBndrs name thing -> SDoc

pprPrec :: Rational -> HsWildCardBndrs name thing -> SDoc

Outputable thing => Outputable (HsImplicitBndrs name thing) 

Methods

ppr :: HsImplicitBndrs name thing -> SDoc

pprPrec :: Rational -> HsImplicitBndrs name thing -> SDoc

(OutputableBndr idL, OutputableBndr idR) => Outputable (PatSynBind idL idR) 

Methods

ppr :: PatSynBind idL idR -> SDoc

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

(OutputableBndr idL, OutputableBndr idR) => Outputable (HsBindLR idL idR) 

Methods

ppr :: HsBindLR idL idR -> SDoc

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

(OutputableBndr idL, OutputableBndr idR) => Outputable (HsValBindsLR idL idR) 

Methods

ppr :: HsValBindsLR idL idR -> SDoc

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

(OutputableBndr idL, OutputableBndr idR) => Outputable (HsLocalBindsLR idL idR) 

Methods

ppr :: HsLocalBindsLR idL idR -> SDoc

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

(Outputable id, Outputable arg) => Outputable (HsRecField' id arg) 

Methods

ppr :: HsRecField' id arg -> SDoc

pprPrec :: Rational -> HsRecField' id arg -> SDoc

Outputable arg => Outputable (HsRecFields id arg) 

Methods

ppr :: HsRecFields id arg -> SDoc

pprPrec :: Rational -> HsRecFields id arg -> SDoc

OutputableBndr idL => Outputable (ParStmtBlock idL idR) 

Methods

ppr :: ParStmtBlock idL idR -> SDoc

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

(Outputable a, Outputable b, Outputable c) => Outputable (a, b, c) 

Methods

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

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

(OutputableBndr idL, OutputableBndr idR, Outputable body) => Outputable (StmtLR idL idR body) 

Methods

ppr :: StmtLR idL idR body -> SDoc

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

(Outputable a, Outputable b, Outputable c, Outputable d) => Outputable (a, b, c, d) 

Methods

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

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

(Outputable a, Outputable b, Outputable c, Outputable d, Outputable e) => Outputable (a, b, c, d, e) 

Methods

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

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

(Outputable a, Outputable b, Outputable c, Outputable d, Outputable e, Outputable f) => Outputable (a, b, c, d, e, f) 

Methods

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

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

(Outputable a, Outputable b, Outputable c, Outputable d, Outputable e, Outputable f, Outputable g) => Outputable (a, b, c, d, e, f, g) 

Methods

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

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

class Outputable a => OutputableBndr a where

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

Minimal complete definition

pprPrefixOcc, pprInfixOcc

Pretty printing combinators

data SDoc

Instances

runSDoc :: SDoc -> SDocContext -> Doc

initSDocContext :: DynFlags -> PprStyle -> SDocContext

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

Returns the separated concatenation of the pretty printed things.

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

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

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

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

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

pprWithCommas

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.

nest :: Int -> SDoc -> SDoc

Indent SDoc some specified amount

char :: Char -> SDoc

int :: Int -> SDoc

cparen :: Bool -> SDoc -> SDoc

(<>) :: SDoc -> SDoc -> SDoc

Join two SDoc together horizontally without a gap

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

Join two SDoc together horizontally with a gap between them

hcat :: [SDoc] -> SDoc

Concatenate SDoc horizontally

hsep :: [SDoc] -> SDoc

Concatenate SDoc horizontally with a space between each one

($$) :: SDoc -> SDoc -> SDoc

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

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

Join two SDoc together vertically

vcat :: [SDoc] -> SDoc

Concatenate SDoc vertically with dovetailing

sep :: [SDoc] -> SDoc

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

cat :: [SDoc] -> SDoc

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

fsep :: [SDoc] -> SDoc

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

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

hang

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

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

punctuate

Arguments

:: SDoc

The punctuation

-> [SDoc]

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

-> [SDoc]

Punctuated list

ppWhen :: Bool -> SDoc -> SDoc

speakNth :: Int -> SDoc

Converts an integer to a verbal index:

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

speakN :: Int -> SDoc

Converts an integer to a verbal multiplicity:

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

speakNOf :: Int -> SDoc -> SDoc

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

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

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

isOrAre [] = ptext (sLit "are")
isOrAre ["Hello"] = ptext (sLit "is")
isOrAre ["Hello", "World"] = ptext (sLit "are")

doOrDoes :: [a] -> SDoc

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

doOrDoes [] = ptext (sLit "do")
doOrDoes ["Hello"] = ptext (sLit "does")
doOrDoes ["Hello", "World"] = ptext (sLit "do")

coloured :: PprColour -> SDoc -> SDoc

Apply the given colour/style for the argument.

Only takes effect if colours are enabled.

data PprColour

A colour/style for use with coloured.

bold :: SDoc -> SDoc

Converting SDoc into strings and outputing it

pprHsChar :: Char -> SDoc

Special combinator for showing character literals.

pprHsString :: FastString -> SDoc

Special combinator for showing string literals.

pprHsBytes :: ByteString -> SDoc

Special combinator for showing bytestring literals.

pprPrimChar :: Char -> SDoc

Special combinator for showing unboxed literals.

Controlling the style in which output is printed

data BindingSite

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.

Constructors

LambdaBind 
CaseBind 
LetBind 

data CodeStyle

Constructors

CStyle 
AsmStyle 

data PrintUnqualified

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

given an original name, this function tells you which module name it should be qualified with when printing for the user, if any. For example, given Control.Exception.catch, which is in scope as Exception.catch, this function will return Just Exception. Note that the return value is a ModuleName, not a Module, because in source code, names are qualified by ModuleNames.

type QueryQualifyModule = Module -> Bool

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

type QueryQualifyPackage = UnitId -> Bool

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

alwaysQualifyNames :: QueryQualifyName

NB: This won't ever show package IDs

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

Truncate a list that is longer than the current depth.

mkErrStyle :: DynFlags -> PrintUnqualified -> PprStyle

Style for printing error messages

data Depth

Constructors

AllTheWay 
PartWay Int 

Error handling and debugging utilities

pprPanic :: String -> SDoc -> a

Throw an exception saying "bug in GHC"

pprSorry :: String -> SDoc -> a

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

assertPprPanic :: String -> Int -> SDoc -> a

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

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

pprTrace :: String -> SDoc -> a -> a

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

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

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

warnPprTrace :: Bool -> String -> Int -> SDoc -> a -> a

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

pprSTrace :: (?callStack :: CallStack) => SDoc -> a -> a

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

trace :: String -> a -> a Source

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.

trace ("calling f with x = " ++ show x) (f x)

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

Panics and asserts.

panic :: String -> a

Panics and asserts.

sorry :: String -> a

Panics and asserts.

assertPanic :: String -> Int -> a

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

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