Contains the state monad that the compiler works in and some functions for tampering with the state.
- type IrrFilter = [Bool]
- data CompileState = CompileState {}
- initCompileState :: CompileState
- type Compile = StateT CompileState
- epicError :: MonadTCM m => String -> Compile m a
- unqname :: QName -> Var
- getDelayed :: MonadTCM m => QName -> Compile m Bool
- putDelayed :: Monad m => QName -> Bool -> Compile m ()
- newName :: Monad m => Compile m Var
- addDataDecl :: Monad m => [QName] -> Compile m ()
- getConstrTag :: Monad m => QName -> Compile m Tag
- addDefName :: Monad m => QName -> Compile m ()
- topBindings :: Monad m => Compile m (Set Var)
- getConPar :: MonadTCM m => QName -> Compile m Int
- putConPar :: Monad m => QName -> Int -> Compile m ()
- putMain :: Monad m => QName -> Compile m ()
- getMain :: MonadTCM m => Compile m Var
- getIrrFilter :: Monad m => QName -> Compile m IrrFilter
- putIrrFilter :: Monad m => QName -> IrrFilter -> Compile m ()
- replaceAt :: Int -> [a] -> [a] -> [a]
- constructorArity :: (MonadTCM tcm, Num a) => QName -> tcm a
Documentation
initCompileState :: CompileStateSource
The initial (empty) state
type Compile = StateT CompileStateSource
Compiler monad
State modifiers
addDataDecl :: Monad m => [QName] -> Compile m ()Source
Add a data declaration by giving a list of its constructors. Tags will be created and saved.
constructorArity :: (MonadTCM tcm, Num a) => QName -> tcm aSource
Copy pasted from MAlonzo, HAHA!!! Move somewhere else!