haskell-src-exts-1.18.2: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer

Copyright | (c) Niklas Broberg 2009
License | BSD-style (see the file LICENSE.txt)
Maintainer | Niklas Broberg, d00nibro@chalmers.se
Stability | stable
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Language.Haskell.Exts.ExactPrint

Description

Exact-printer for Haskell abstract syntax. The input is a (semi-concrete) abstract syntax tree, annotated with exact source information to enable printing the tree exactly as it was parsed.

Synopsis

- exactPrint :: ExactP ast => ast SrcSpanInfo -> [Comment] -> String
- class Annotated ast => ExactP ast

# Documentation

exactPrint :: ExactP ast => ast SrcSpanInfo -> [Comment] -> String #

Print an AST exactly as specified by the annotations on the nodes in the tree.

class Annotated ast => ExactP ast #

Minimal complete definition

exactP

Instances

ExactP Alt # |
Methods exactP :: Alt SrcSpanInfo -> EP ()
ExactP FieldUpdate # |
Methods exactP :: FieldUpdate SrcSpanInfo -> EP ()
ExactP QualStmt # |
Methods exactP :: QualStmt SrcSpanInfo -> EP ()
ExactP Stmt # |
Methods exactP :: Stmt SrcSpanInfo -> EP ()
ExactP PatField # |
Methods exactP :: PatField SrcSpanInfo -> EP ()
ExactP RPat # |
Methods exactP :: RPat SrcSpanInfo -> EP ()
ExactP RPatOp # |
Methods exactP :: RPatOp SrcSpanInfo -> EP ()
ExactP PXAttr # |
Methods exactP :: PXAttr SrcSpanInfo -> EP ()
ExactP Pat # |
Methods exactP :: Pat SrcSpanInfo -> EP ()
ExactP WarningText # |
Methods exactP :: WarningText SrcSpanInfo -> EP ()
ExactP RuleVar # |
Methods exactP :: RuleVar SrcSpanInfo -> EP ()
ExactP Rule # |
Methods exactP :: Rule SrcSpanInfo -> EP ()
ExactP Activation # |
Methods exactP :: Activation SrcSpanInfo -> EP ()
ExactP Overlap # |
Methods exactP :: Overlap SrcSpanInfo -> EP ()
ExactP ModulePragma # |
Methods exactP :: ModulePragma SrcSpanInfo -> EP ()
ExactP CallConv # |
Methods exactP :: CallConv SrcSpanInfo -> EP ()
ExactP Safety # |
Methods exactP :: Safety SrcSpanInfo -> EP ()
ExactP Splice # |
Methods exactP :: Splice SrcSpanInfo -> EP ()
ExactP Bracket # |
Methods exactP :: Bracket SrcSpanInfo -> EP ()
ExactP XAttr # |
Methods exactP :: XAttr SrcSpanInfo -> EP ()
ExactP XName # |
Methods exactP :: XName SrcSpanInfo -> EP ()
ExactP Exp # |
Methods exactP :: Exp SrcSpanInfo -> EP ()
ExactP Sign # |
Methods exactP :: Sign SrcSpanInfo -> EP ()
ExactP Literal # |
Methods exactP :: Literal SrcSpanInfo -> EP ()
ExactP Asst # |
Methods exactP :: Asst SrcSpanInfo -> EP ()
ExactP Context # |
Methods exactP :: Context SrcSpanInfo -> EP ()
ExactP FunDep # |
Methods exactP :: FunDep SrcSpanInfo -> EP ()
ExactP Kind # |
Methods exactP :: Kind SrcSpanInfo -> EP ()
ExactP TyVarBind # |
Methods exactP :: TyVarBind SrcSpanInfo -> EP ()
ExactP Promoted # |
Methods exactP :: Promoted SrcSpanInfo -> EP ()
ExactP Type # |
Methods exactP :: Type SrcSpanInfo -> EP ()
ExactP GuardedRhs # |
Methods exactP :: GuardedRhs SrcSpanInfo -> EP ()
ExactP Rhs # |
Methods exactP :: Rhs SrcSpanInfo -> EP ()
ExactP Unpackedness # |
Methods exactP :: Unpackedness SrcSpanInfo -> EP ()
ExactP BangType # |
Methods exactP :: BangType SrcSpanInfo -> EP ()
ExactP InstDecl # |
Methods exactP :: InstDecl SrcSpanInfo -> EP ()
ExactP ClassDecl # |
Methods exactP :: ClassDecl SrcSpanInfo -> EP ()
ExactP GadtDecl # |
Methods exactP :: GadtDecl SrcSpanInfo -> EP ()
ExactP FieldDecl # |
Methods exactP :: FieldDecl SrcSpanInfo -> EP ()
ExactP ConDecl # |
Methods exactP :: ConDecl SrcSpanInfo -> EP ()
ExactP QualConDecl # |
Methods exactP :: QualConDecl SrcSpanInfo -> EP ()
ExactP Match # |
Methods exactP :: Match SrcSpanInfo -> EP ()
ExactP IPBind # |
Methods exactP :: IPBind SrcSpanInfo -> EP ()
ExactP Binds # |
Methods exactP :: Binds SrcSpanInfo -> EP ()
ExactP Deriving # |
Methods exactP :: Deriving SrcSpanInfo -> EP ()
ExactP InstHead # |
Methods exactP :: InstHead SrcSpanInfo -> EP ()
ExactP InstRule # |
Methods exactP :: InstRule SrcSpanInfo -> EP ()
ExactP DeclHead # |
Methods exactP :: DeclHead SrcSpanInfo -> EP ()
ExactP ResultSig # |
Methods exactP :: ResultSig SrcSpanInfo -> EP ()
ExactP InjectivityInfo # |
Methods exactP :: InjectivityInfo SrcSpanInfo -> EP ()
ExactP DataOrNew # |
Methods exactP :: DataOrNew SrcSpanInfo -> EP ()
ExactP Role # |
Methods exactP :: Role SrcSpanInfo -> EP ()
ExactP BooleanFormula # |
Methods exactP :: BooleanFormula SrcSpanInfo -> EP ()
ExactP Annotation # |
Methods exactP :: Annotation SrcSpanInfo -> EP ()
ExactP TypeEqn # |
Methods exactP :: TypeEqn SrcSpanInfo -> EP ()
ExactP Decl # |
Methods exactP :: Decl SrcSpanInfo -> EP ()
ExactP Assoc # |
Methods exactP :: Assoc SrcSpanInfo -> EP ()
ExactP ImportSpec # |
Methods exactP :: ImportSpec SrcSpanInfo -> EP ()
ExactP ImportSpecList # |
Methods exactP :: ImportSpecList SrcSpanInfo -> EP ()
ExactP ImportDecl # |
Methods exactP :: ImportDecl SrcSpanInfo -> EP ()
ExactP Namespace # |
Methods exactP :: Namespace SrcSpanInfo -> EP ()
ExactP ExportSpec # |
Methods exactP :: ExportSpec SrcSpanInfo -> EP ()
ExactP ExportSpecList # |
Methods exactP :: ExportSpecList SrcSpanInfo -> EP ()
ExactP ModuleHead # |
Methods exactP :: ModuleHead SrcSpanInfo -> EP ()
ExactP Module # |
Methods exactP :: Module SrcSpanInfo -> EP ()
ExactP CName # |
Methods exactP :: CName SrcSpanInfo -> EP ()
ExactP Op # |
Methods exactP :: Op SrcSpanInfo -> EP ()
ExactP QOp # |
Methods exactP :: QOp SrcSpanInfo -> EP ()
ExactP IPName # |
Methods exactP :: IPName SrcSpanInfo -> EP ()
ExactP Name # |
Methods exactP :: Name SrcSpanInfo -> EP ()
ExactP QName # |
Methods exactP :: QName SrcSpanInfo -> EP ()
ExactP SpecialCon # |
Methods exactP :: SpecialCon SrcSpanInfo -> EP ()
ExactP ModuleName # |
Methods exactP :: ModuleName SrcSpanInfo -> EP ()