traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Utils.ASTRewriting

Synopsis

Documentation

class HasAst a where #

Typeclass for the ast lens, which looks at immediate children

Methods

_ast :: Traversal' a a #

Instances

Instances details
HasAst (Stmt sizeT) # 
Instance details

Defined in Traq.CQPL.Syntax

Methods

_ast :: Traversal' (Stmt sizeT) (Stmt sizeT) #

HasAst (Stmt ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Methods

_ast :: Traversal' (Stmt ext) (Stmt ext) #

class HasStmt p where #

Typeclass for lifting underlying ASTs.

Associated Types

type StmtOf p #

Methods

_stmt :: Traversal' p (StmtOf p) #

Instances

Instances details
HasStmt (CProcBody sizeT) # 
Instance details

Defined in Traq.CQPL.Syntax

Associated Types

type StmtOf (CProcBody sizeT) #

Methods

_stmt :: Traversal' (CProcBody sizeT) (StmtOf (CProcBody sizeT)) #

HasStmt (ProcDef sizeT) # 
Instance details

Defined in Traq.CQPL.Syntax

Associated Types

type StmtOf (ProcDef sizeT) #

Methods

_stmt :: Traversal' (ProcDef sizeT) (StmtOf (ProcDef sizeT)) #

HasStmt (Program sizeT) # 
Instance details

Defined in Traq.CQPL.Syntax

Associated Types

type StmtOf (Program sizeT) #

Methods

_stmt :: Traversal' (Program sizeT) (StmtOf (Program sizeT)) #

HasStmt (Stmt sizeT) # 
Instance details

Defined in Traq.CQPL.Syntax

Associated Types

type StmtOf (Stmt sizeT) #

Methods

_stmt :: Traversal' (Stmt sizeT) (StmtOf (Stmt sizeT)) #

HasStmt (FunBody ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (FunBody ext) #

Methods

_stmt :: Traversal' (FunBody ext) (StmtOf (FunBody ext)) #

HasStmt (FunDef ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (FunDef ext) #

Methods

_stmt :: Traversal' (FunDef ext) (StmtOf (FunDef ext)) #

HasStmt (NamedFunDef ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (NamedFunDef ext) #

HasStmt (Program ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (Program ext) #

Methods

_stmt :: Traversal' (Program ext) (StmtOf (Program ext)) #

HasStmt (Stmt ext) # 
Instance details

Defined in Traq.ProtoLang.Syntax

Associated Types

type StmtOf (Stmt ext) #

Methods

_stmt :: Traversal' (Stmt ext) (StmtOf (Stmt ext)) #

rewriteAST :: (s ~ StmtOf p, HasAst s, HasStmt p) => (s -> Maybe s) -> p -> p #

Rewrite an AST locally.