Safe HaskellSafe-Infered

AOP.Internal.Pointcut

Synopsis

Documentation

data PC m a b

A pointcut is a predicate on the current join point. It is used to identify join points of interest.

Constructors

Typeable1Monad m => PC 

Fields

mpcond :: forall a' b'. m (Jp m a' b' -> m Bool)
 

Instances

Typeable1Monad m => PCAnd m a1 b1 a2 b2 PC

When combining two PC pointcuts, the matched types t1 and t2 must be the same | This expressed in the constraint t1 ~ t2 (Note: if we use only t instead of t1 t2 and t1 ~ t2, we get a compile error in AOTTests.hs)

Typeable1 m => Typeable2 (PC m)

Support for PolyTypeable

data RequirePC m a b

A RequirePC is not a valid standalone pointcut, it reflects a type requirement and must be combined with a standard PC.

Constructors

Typeable1Monad m => RequirePC 

Fields

mpcond' :: forall a' b'. m (Jp m a' b' -> m Bool)
 

Instances

Typeable1Monad m => PCAnd m a1 b1 a2 b2 RequirePC

When combining a PC with a RequirePC we constraint t1 to be LessGen than t2

Typeable1 m => Typeable2 (RequirePC m) 

runPC :: Typeable1Monad m => PC m a b -> Jp m a' b' -> m Bool

Extracts the computation resulting of applying a join point to the pointcut