language-haskell
Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Template

Description

Pretty-printing of AST via Template Haskell. That is, the AST is first transformed into corresponding Template Haskell AST, then printed using its pretty-printer.

Synopsis

Documentation

class PrettyViaTH a Source #

Class for AST nodes that can be pretty-printed, typically via Template Haskell

Minimal complete definition

prettyViaTH

Instances

Instances details
PrettyViaTH ExtensionSwitch Source # 
Instance details

Defined in Language.Haskell.Template

PrettyViaTH (ModuleName Language) Source # 
Instance details

Defined in Language.Haskell.Template

PrettyViaTH (Name Language) Source # 
Instance details

Defined in Language.Haskell.Template

PrettyViaTH (QualifiedName Language) Source # 
Instance details

Defined in Language.Haskell.Template

PrettyViaTH (Members Language) Source # 
Instance details

Defined in Language.Haskell.Template

PrettyViaTH (ModuleMember Language) Source # 
Instance details

Defined in Language.Haskell.Template

PrettyViaTH a => PrettyViaTH (x, a) Source # 
Instance details

Defined in Language.Haskell.Template

Methods

prettyViaTH :: (x, a) -> Doc

TemplateWrapper f => PrettyViaTH (ImportSpecification Language Language f f) Source # 
Instance details

Defined in Language.Haskell.Template

TemplateWrapper f => PrettyViaTH (Module Language Language f f) Source # 
Instance details

Defined in Language.Haskell.Template

TemplateWrapper f => PrettyViaTH (Declaration Language Language f f) Source # 
Instance details

Defined in Language.Haskell.Template

PrettyViaTH (Export Language Language f f) Source # 
Instance details

Defined in Language.Haskell.Template

TemplateWrapper f => PrettyViaTH (Expression Language Language f f) Source # 
Instance details

Defined in Language.Haskell.Template

TemplateWrapper f => PrettyViaTH (Import Language Language f f) Source # 
Instance details

Defined in Language.Haskell.Template

PrettyViaTH (ImportItem Language Language f f) Source # 
Instance details

Defined in Language.Haskell.Template

(Foldable f, PrettyViaTH a) => PrettyViaTH (Compose f ((,) x) a) Source # 
Instance details

Defined in Language.Haskell.Template

Methods

prettyViaTH :: Compose f ((,) x) a -> Doc

pprint :: forall a (f :: Type -> Type) (node :: Type -> Type -> (Type -> Type) -> (Type -> Type) -> Type) pos s. (PrettyViaTH a, a ~ f (node Language Language f f), f ~ Wrap Language pos s, FullyTranslatable (ReformulationOf (On 'RecordWildCards) '[On 'NamedFieldPuns] Language Language pos s) node, FullyTranslatable (ReformulationOf (On 'NPlusKPatterns) '[On 'ViewPatterns] Language Language pos s) node, FullyTranslatable (ReformulationOf (Off 'ListTuplePuns) ('[] :: [ExtensionSwitch]) Language Language pos s) node) => a -> String Source #

Pretty-print the AST.