Safe HaskellSafe-Infered

AOP.Internal.AOTType

Synopsis

Documentation

newtype AOT m a

This module defines the AOT type. It is a separate module to avoid circular dependencies between modules.

Constructors

AOT 

Fields

run :: AspectEnv (AOT m) -> m (a, AspectEnv (AOT m))
 

Instances

MonadTrans AOT 
MonadState s m => MonadState s (AOT m) 
MonadWriter w m => MonadWriter w (AOT m) 
MonadReader r m => MonadReader r (AOT m) 
MonadError s m => MonadError s (AOT m) 
Typeable1Monad m => OpenApp (->) (AOT m)

Every regular functions is tagged with the same default tag.

Typeable1Monad m => OpenApp Function (AOT m)

Function is a wrapper to add a notion of identity based on tags.

Typeable1Monad m => MonadDeploy AOT (ELT m)

Semantics of Execution Levels

Monad m => Monad (AOT m)

Monadic bind and return operations for a transformed monad. The aspect environment is wrapped or passed around as in a state monad transformer.

Typeable1Monad m => Typeable1 (AOT m)

Typeable instance so types of computations in AOT can be compared (like in pcCall and pcType)

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

Interaction with AOT

MonadIO m => MonadIO (AOT m) 
MonadCont m => MonadCont (AOT m) 
(Typeable1Monad m, MonadDeploy AOT m) => AOPMonad (AOT m)

The semantics of aspect deployment are defined in the MonadDeploy typeclass. AOT assumes it is on top of an MonadDeploy instance, and uses that functions for aspect deployment.

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

data EPC m

Constructors

forall a b . EPC (PC m a b) 

newtype AOT_s m a

Constructors

AOT_s 

Fields

run_s :: AspectEnv (AOT_s m) -> EPC (AOT_s m) -> m (a, (AspectEnv (AOT_s m), EPC (AOT_s m)))
 

Instances

MonadTrans AOT_s 
MonadState s m => MonadState s (AOT_s m) 
MonadWriter w m => MonadWriter w (AOT_s m) 
MonadReader r m => MonadReader r (AOT_s m) 
MonadError s m => MonadError s (AOT_s m) 
Typeable1Monad m => OpenApp (->) (AOT_s m)

Every regular functions is tagged with the same default tag.

Typeable1Monad m => OpenApp Function (AOT_s m)

Function is a wrapper to add a notion of identity based on tags.

Monad m => Monad (AOT_s m)

Monadic bind and return operations for a transformed monad. The aspect environment is wrapped or passed around as in a state monad transformer.

Typeable1Monad m => Typeable1 (AOT_s m)

Typeable instance so types of computations in AOT_s can be compared (like in pcCall and pcType)

MonadIO m => MonadIO (AOT_s m) 
(Typeable1Monad m, MonadDeploy AOT_s m) => AOPMonad (AOT_s m)

The semantics of aspect deployment are defined in the MonadDeploy typeclass. AOT_s assumes it is on top of an MonadDeploy instance, and uses that functions for aspect deployment.

(MonadJPStack m, Typeable1Monad (AOT_s m)) => MonadJPStack (AOT_s m) 

data SP m

Constructors

forall a1 b1 . SP (PC m a1 b1) (AspectEnv m) 

newtype AOT_sp m a

Constructors

AOT_sp 

Fields

run_sp :: AspectEnv (AOT_sp m) -> SP (AOT_sp m) -> m (a, (AspectEnv (AOT_sp m), SP (AOT_sp m)))
 

Instances

MonadTrans AOT_sp 
MonadState s m => MonadState s (AOT_sp m) 
MonadWriter w m => MonadWriter w (AOT_sp m) 
MonadReader r m => MonadReader r (AOT_sp m) 
MonadError s m => MonadError s (AOT_sp m) 
Typeable1Monad m => OpenApp (->) (AOT_sp m)

Every regular functions is tagged with the same default tag.

Typeable1Monad m => OpenApp Function (AOT_sp m)

Function is a wrapper to add a notion of identity based on tags.

Monad m => Monad (AOT_sp m)

Monadic bind and return operations for a transformed monad. The aspect environment is wrapped or passed around as in a state monad transformer.

Typeable1Monad m => Typeable1 (AOT_sp m)

Typeable instance so types of computations in AOT_sp can be compared (like in pcCall and pcType)

MonadIO m => MonadIO (AOT_sp m) 
(Typeable1Monad m, MonadDeploy AOT_sp m) => AOPMonad (AOT_sp m)

The semantics of aspect deployment are defined in the MonadDeploy typeclass. AOT_sp assumes it is on top of an MonadDeploy instance, and uses that functions for aspect deployment.

(MonadJPStack m, Typeable1Monad (AOT_sp m)) => MonadJPStack (AOT_sp m)