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

Safe HaskellNone
LanguageHaskell2010

Agda.Compiler.Epic.CompileState

Contents

Description

Contains the state monad that the compiler works in and some functions for tampering with the state.

Synopsis

Documentation

initCompileState :: CompileState Source #

The initial (empty) state

type Compile = StateT CompileState Source #

Compiler monad

epicError :: String -> Compile TCM a Source #

When normal errors are not enough

modifyEI :: (EInterface -> EInterface) -> Compile TCM () Source #

Modify the state of the current module's Epic Interface

getsEI :: (EInterface -> a) -> Compile TCM a Source #

Get the state of the current module's Epic Interface

getType :: QName -> Compile TCM Type Source #

Returns the type of a definition given its name

unqname :: QName -> Var Source #

Create a name which can be used in Epic code from a QName.

State modifiers

replaceAt Source #

Arguments

:: Int

replace at

-> [a]

to replace

-> [a]

replace with

-> [a]

result?

constructorArity :: Num a => QName -> TCM a Source #

Copy pasted from MAlonzo, HAHA!!! Move somewhere else!

bindExpr :: Expr -> (Var -> Compile TCM Expr) -> Compile TCM Expr Source #

Bind an expression to a fresh variable name