effective-aspects-0.1.0.0: A monadic embedding of aspect oriented programming

Safe HaskellNone

AOP.Internal.AOPMonad

Documentation

class (Typeable1Monad m, OpenApp m) => AOPMonad m whereSource

Methods

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

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

Instances

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

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

Methods

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

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

Instances

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

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