Safe HaskellSafe-Infered

AOP.JPStackT

Synopsis

Documentation

data EJP

Constructors

forall a b m . (Monad m, PolyTypeable (a -> m b)) => EJP (a -> m b) FunctionTag a 

data JPStackT m a

Instances

MonadTrans JPStackT 
Monad m => MonadState s (JPStackT (StateT s m)) 
MonadWriter w m => MonadWriter w (JPStackT m) 
MonadReader r m => MonadReader r (JPStackT m) 
Monad m => Monad (JPStackT m) 
Typeable1Monad m => Typeable1 (JPStackT m) 
MonadIO m => MonadIO (JPStackT m) 
MonadCont m => MonadCont (JPStackT m) 
Monad m => MonadJPStack (JPStackT m) 

type JPStack = [EJP]

class Monad m => MonadJPStack m where

Methods

getJPStack :: m JPStack

addJpToStack :: EJP -> m ()

popJPStack :: m ()

pcCflow :: (PcCflow f, Typeable1Monad m, MonadJPStack m, PolyTypeable (f a (m b))) => f a (m b) -> PC m c (m' d)

pcCflowbelow :: (PcCflowbelow f, Typeable1Monad m, MonadJPStack m, PolyTypeable (f a (m b))) => f a (m b) -> PC m c (m' d)

runJPStackT :: Monad m => JPStackT m a -> JPStack -> m a

jpStackAspect :: (Typeable1Monad m, MonadJPStack m) => Aspect m c1 (m c2) c1 c2

Join points are collected by a regular aspect | deployed at some bootstrapping time.