Safe HaskellSafe-Infered

AOP.Internal.NonInterferenceDef

Synopsis

Documentation

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

Builds an aspect with a NI pointcut

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

Builds an aspect with a NI advice

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

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

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

Builds a NI base program

type NIPC a b t = forall 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 a b t = forall m. (Typeable1Monad m, Typeable1Monad (t m)) => Advice (a -> NIAOT t m b)