Safe HaskellSafe-Infered

AOP.Internal.AOPMonad

Documentation

class (Typeable1Monad m, OpenApp (->) m, OpenApp Function m) => AOPMonad m where

Methods

deploy :: LessGen (a -> b) (c -> m d) => Aspect m a b c d -> m ()

undeploy :: LessGen (a -> b) (c -> m d) => Aspect m a b c d -> m ()

Instances

(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.

(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.

(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.

Typeable1Monad (t m) => AOPMonad (NIAOT t m)

NIAOT performs top-level deployment of aspects

class (Typeable1Monad m, Typeable1Monad (t m)) => MonadDeploy t m where

Methods

deployInEnv :: LessGen (a -> b) (c -> t m d) => Aspect (t m) a b c d -> AspectEnv (t m) -> m (AspectEnv (t m))

undeployInEnv :: LessGen (a -> b) (c -> t m d) => Aspect (t m) a b c d -> AspectEnv (t m) -> m (AspectEnv (t m))

Instances

(Typeable1Monad m, Typeable1Monad (t m)) => MonadDeploy t m

Default aspect semantics, aspects are deployed and undeployed at the top level.

Typeable1Monad m => MonadDeploy AOT (ELT m)

Semantics of Execution Levels