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

Safe HaskellNone
LanguageHaskell2010

Agda.Compiler.UHC.CompileState

Description

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

Synopsis

Documentation

data CompileT m a Source #

Compiler monad

Instances

MonadTrans CompileT Source # 

Methods

lift :: Monad m => m a -> CompileT m a #

MonadReader r m => MonadReader r (CompileT m) Source # 

Methods

ask :: CompileT m r #

local :: (r -> r) -> CompileT m a -> CompileT m a #

reader :: (r -> a) -> CompileT m a #

MonadState s m => MonadState s (CompileT m) Source # 

Methods

get :: CompileT m s #

put :: s -> CompileT m () #

state :: (s -> (a, s)) -> CompileT m a #

Monad m => Monad (CompileT m) Source # 

Methods

(>>=) :: CompileT m a -> (a -> CompileT m b) -> CompileT m b #

(>>) :: CompileT m a -> CompileT m b -> CompileT m b #

return :: a -> CompileT m a #

fail :: String -> CompileT m a #

Functor m => Functor (CompileT m) Source # 

Methods

fmap :: (a -> b) -> CompileT m a -> CompileT m b #

(<$) :: a -> CompileT m b -> CompileT m a #

Monad m => Applicative (CompileT m) Source # 

Methods

pure :: a -> CompileT m a #

(<*>) :: CompileT m (a -> b) -> CompileT m a -> CompileT m b #

(*>) :: CompileT m a -> CompileT m b -> CompileT m b #

(<*) :: CompileT m a -> CompileT m b -> CompileT m a #

MonadIO m => MonadIO (CompileT m) Source # 

Methods

liftIO :: IO a -> CompileT m a #

MonadTCM m => MonadTCM (CompileT m) Source # 

Methods

liftTCM :: TCM a -> CompileT m a Source #

runCompileT Source #

Arguments

:: MonadIO m 
=> ModuleName

The module to compile.

-> CompileT m a 
-> m a 

Used to run the Agda-to-UHC Core transformation. During this transformation,

getConstrCTag :: QName -> Compile CTag Source #

Returns the CTag for a constructor. Not defined for Sharp and magic UNIT constructor.

getConstrFun :: QName -> Compile HsName Source #

Returns the expression to use to build a value of the given datatype/constructor.

conArityAndPars :: QName -> TCM (Nat, Nat) Source #

Copy pasted from MAlonzo.... Move somewhere else!