{-# LANGUAGE FlexibleInstances, UndecidableInstances, ScopedTypeVariables, MultiParamTypeClasses #-} -- | Default aspect semantics, aspects are deployed and undeployed at the top level. module AOP.Default (module X) where import AOP.Internal.JoinpointModel as X import AOP.Internal.AOPMonad as X import AOP.Internal.OpenApp as X import AOP.Internal.PointcutLanguage as X import AOP.Internal.AOT as X -- | Default aspect semantics, aspects are deployed and undeployed at the top level. instance (Typeable1Monad m, Typeable1Monad (t m)) => MonadDeploy t m where deployInEnv asp aenv = return (EAspect asp:aenv) undeployInEnv asp@(Aspect (pc::PC (t m) a b) adv hnd) aenv = return (deleteAsp (EAspect asp) aenv)