Safe HaskellSafe-Infered

AOP.Semantics.EL.ELT

Synopsis

Documentation

newtype ELT m a

Constructors

ELT (Level -> m (a, Level)) 

Instances

MonadTrans ELT 
Monad m => MonadState s (ELT (StateT s m)) 
MonadWriter w m => MonadWriter w (ELT m) 
MonadReader r m => MonadReader r (ELT m) 
Monad m => Monad (ELT m)

Monadic bind and return functions.

Typeable1Monad m => Typeable1 (ELT m) 
Monad m => MonadEL (ELT m)

ELT produces level-aware functions.

MonadIO m => MonadIO (ELT m) 
MonadCont m => MonadCont (ELT m) 
Typeable1Monad m => MonadDeploy (ELT m) 

type Level = Int

class Monad m => MonadEL m where

A level-aware monad can perform level-shifting operations.

Methods

current :: m Level

up :: m a -> m a

down :: m a -> m a

lambda_at :: (a -> m b) -> Level -> a -> m b

Instances

(MonadEL m, Typeable1Monad (AOT m)) => MonadEL (AOT m)

Interaction with AOT

Monad m => MonadEL (ELT m)

ELT produces level-aware functions.

runELT :: Monad m => ELT m a -> Level -> m a