Safe HaskellSafe-Infered

AOP.Internal.AOPMonad

Documentation

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

Methods

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

undeploy :: LessGen t1 t2 => Aspect m t1 t2 -> m ()

Instances

(Typeable1Monad m, MonadDeploy 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 Monad m => MonadDeploy m where

Methods

deployInEnv :: LessGen t1 (a -> AOT m b) => Aspect (AOT m) t1 (a -> AOT m b) -> AspectEnv (AOT m) -> m (AspectEnv (AOT m))

undeployInEnv :: LessGen t1 t2 => Aspect (AOT m) t1 t2 -> AspectEnv (AOT m) -> m (AspectEnv (AOT m))

Instances

(Typeable1Monad m, Monad (AOT m)) => MonadDeploy m

Default semantics for aspect deployment/undeployment

Typeable1Monad m => MonadDeploy (ELT m)