Safe Haskell | Safe-Infered |
---|
AOP.Internal.Pointcut
- data PC m a b = Typeable1Monad m => PC {}
- data RequirePC m a b = Typeable1Monad m => RequirePC {}
- runPC :: Typeable1Monad m => PC m a b -> Jp m a' b' -> m Bool
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 | |
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 | |
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