Safe Haskell | Safe-Infered |
---|
AOP.Internal.AOT_secure
- data AOT_s m a
- runAOT_s :: Monad m => EPC (AOT_s m) -> AOT_s m a -> m a
- wappt_s :: (Typeable1Monad m, PolyTypeable (a -> AOT_s m b)) => (a -> AOT_s m b) -> FunctionTag -> a -> AOT_s m b
Documentation
data AOT_s m a
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) |
runAOT_s :: Monad m => EPC (AOT_s m) -> AOT_s m a -> m a
Runs an AOT_s computation to obtain a computation in the underlying monad
wappt_s :: (Typeable1Monad m, PolyTypeable (a -> AOT_s m b)) => (a -> AOT_s m b) -> FunctionTag -> a -> AOT_s m b
Implementation of woven application for AOT_s, used in the overloading of #. FunctionTag argument is used for function identity: Wrapped functions are equal when their tags are equal Regular functions share the same tag, and are compared using StableNames.