template-haskell-2.11.0.0: Support library for Template Haskell

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.TH.Ppr

Description

contains a prettyprinter for the Template Haskell datatypes

Synopsis

Documentation

parensIf :: Bool -> Doc -> Doc

pprint :: Ppr a => a -> String

class Ppr a where

Minimal complete definition

ppr

Methods

ppr :: a -> Doc

ppr_list :: [a] -> Doc

Instances

Ppr Exp 

Methods

ppr :: Exp -> Doc

ppr_list :: [Exp] -> Doc

Ppr Match 

Methods

ppr :: Match -> Doc

ppr_list :: [Match] -> Doc

Ppr Clause 

Methods

ppr :: Clause -> Doc

ppr_list :: [Clause] -> Doc

Ppr Pat 

Methods

ppr :: Pat -> Doc

ppr_list :: [Pat] -> Doc

Ppr Type 

Methods

ppr :: Type -> Doc

ppr_list :: [Type] -> Doc

Ppr Dec 

Methods

ppr :: Dec -> Doc

ppr_list :: [Dec] -> Doc

Ppr Name 

Methods

ppr :: Name -> Doc

ppr_list :: [Name] -> Doc

Ppr FunDep 

Methods

ppr :: FunDep -> Doc

ppr_list :: [FunDep] -> Doc

Ppr TyVarBndr 

Methods

ppr :: TyVarBndr -> Doc

ppr_list :: [TyVarBndr] -> Doc

Ppr InjectivityAnn 
Ppr Role 

Methods

ppr :: Role -> Doc

ppr_list :: [Role] -> Doc

Ppr TyLit 

Methods

ppr :: TyLit -> Doc

ppr_list :: [TyLit] -> Doc

Ppr FamilyResultSig 
Ppr Bang 

Methods

ppr :: Bang -> Doc

ppr_list :: [Bang] -> Doc

Ppr Con 

Methods

ppr :: Con -> Doc

ppr_list :: [Con] -> Doc

Ppr DecidedStrictness 
Ppr SourceStrictness 
Ppr SourceUnpackedness 
Ppr RuleBndr 

Methods

ppr :: RuleBndr -> Doc

ppr_list :: [RuleBndr] -> Doc

Ppr Phases 

Methods

ppr :: Phases -> Doc

ppr_list :: [Phases] -> Doc

Ppr RuleMatch 

Methods

ppr :: RuleMatch -> Doc

ppr_list :: [RuleMatch] -> Doc

Ppr Inline 

Methods

ppr :: Inline -> Doc

ppr_list :: [Inline] -> Doc

Ppr Pragma 

Methods

ppr :: Pragma -> Doc

ppr_list :: [Pragma] -> Doc

Ppr Foreign 

Methods

ppr :: Foreign -> Doc

ppr_list :: [Foreign] -> Doc

Ppr FamFlavour 

Methods

ppr :: FamFlavour -> Doc

ppr_list :: [FamFlavour] -> Doc

Ppr Range 

Methods

ppr :: Range -> Doc

ppr_list :: [Range] -> Doc

Ppr Stmt 

Methods

ppr :: Stmt -> Doc

ppr_list :: [Stmt] -> Doc

Ppr Lit 

Methods

ppr :: Lit -> Doc

ppr_list :: [Lit] -> Doc

Ppr ModuleInfo 

Methods

ppr :: ModuleInfo -> Doc

ppr_list :: [ModuleInfo] -> Doc

Ppr Info 

Methods

ppr :: Info -> Doc

ppr_list :: [Info] -> Doc

Ppr Loc 

Methods

ppr :: Loc -> Doc

ppr_list :: [Loc] -> Doc

Ppr Module 

Methods

ppr :: Module -> Doc

ppr_list :: [Module] -> Doc

Ppr a => Ppr [a] 

Methods

ppr :: [a] -> Doc

ppr_list :: [[a]] -> Doc

ppr_sig :: Name -> Type -> Doc

pprFields :: [(Name, Exp)] -> Doc

pprGuarded :: Doc -> (Guard, Exp) -> Doc

pprBody :: Bool -> Body -> Doc

ppr_dec :: Bool -> Dec -> Doc

ppr_data :: Doc -> Cxt -> Name -> Doc -> Maybe Kind -> [Con] -> Cxt -> Doc

ppr_newtype :: Doc -> Cxt -> Name -> Doc -> Maybe Kind -> Con -> Cxt -> Doc

ppr_tySyn :: Doc -> Name -> Doc -> Type -> Doc

pprGadtRHS :: [(Strict, Type)] -> Type -> Doc

pprVarStrictType :: (Name, Strict, Type) -> Doc

Deprecated: As of template-haskell-2.11.0.0, VarStrictType has been replaced by VarBangType. Please use pprVarBangType instead.

pprStrictType :: (Strict, Type) -> Doc

Deprecated: As of template-haskell-2.11.0.0, StrictType has been replaced by BangType. Please use pprBangType instead.

pprTyApp :: (Type, [Type]) -> Doc

split :: Type -> (Type, [Type])

pprCxt :: Cxt -> Doc

showtextl :: Show a => a -> Doc

commaSep :: Ppr a => [a] -> Doc

commaSepWith :: (a -> Doc) -> [a] -> Doc

semiSep :: Ppr a => [a] -> Doc