Agda-2.2.10: A dependently typed functional programming language and proof assistant

Agda.Compiler.Epic.AuxAST

Description

Intermediate abstract syntax tree used in the compiler. Pretty close to Epic syntax.

Synopsis

Documentation

type Tag = IntSource

data Fun Source

Constructors

Fun 
EpicFun 

Instances

data Lit Source

Instances

data Branch Source

Constructors

Branch 

Fields

brTag :: Tag
 
brName :: QName
 
brVars :: [Var]
 
brExpr :: Expr
 
BrInt 

Fields

brInt :: Int
 
brExpr :: Expr
 
Default 

Fields

brExpr :: Expr
 

Instances

apps :: Var -> [Expr] -> ExprSource

Smart constructor for applications to avoid empty applications

substSource

Arguments

:: Var

Substitute this ...

-> Var

with this ...

-> Expr

in this.

-> Expr 

Substitution

fv :: Expr -> [Var]Source

Get the free variables in an expression

pairwiseFilter :: [Bool] -> [a] -> [a]Source

Filter a list using a list of Bools specifying what to keep.