Safe HaskellSafe-Infered

AOP.Internal.NonInterferenceDef

Synopsis

Documentation

niPcAspect :: (Typeable1Monad m, Typeable1Monad m', Typeable1Monad (t m), LessGen (a -> m' b) (c -> NIAOT t m d)) => NIPC t a (m' b) -> Advice (NIAOT t m) c d -> Aspect (NIAOT t m) a (m' b) c d

Builds an aspect with a NI pointcut

niAdviceAspect :: (Typeable1Monad m, Typeable1Monad m', Typeable1Monad (t m), LessGen (a -> m' b) (c -> NIAOT t m d)) => PC (NIAOT t m) a (m' b) -> NIAdvice t c d -> Aspect (NIAOT t m) a (m' b) c d

Builds an aspect with a NI advice

niAspect :: (Typeable1Monad m, Typeable1Monad m', Typeable1Monad (t m), LessGen (a -> m' b) (c -> NIAOT t m d)) => NIPC t a (m' b) -> NIAdvice t c d -> Aspect (NIAOT t m) a (m' b) c d

Builds a NI aspect, that is it has NI pointcut and advice

niBase :: (MonadTrans t, Typeable1Monad (t m)) => NIBase m a b -> a -> NIAOT t m b

Builds a NI base program

niAdvice :: (Typeable1Monad m, Typeable1Monad (t m)) => NIAdvice t a b -> Advice (NIAOT t m) a b

Accepts an NIAdvice only

type NIPC t a b = forall m m'. (Typeable1Monad m, Typeable1Monad (t m)) => PC (NIAOT t m) a b

Types of Non-Interfering poincut, advice, and base code | The non-interference property is obtained by parameterizing on the monad m, or the monad transformer t.

type NIAdvice t a b = forall m. (Typeable1Monad m, Typeable1Monad (t m)) => Advice (NIAOT t m) a b