Safe Haskell | None |
---|

- pcCall :: (Typeable1Monad m, PolyTypeable (a -> b)) => (a -> b) -> PC m a b
- pcType :: (Typeable1Monad m, PolyTypeable (a -> b)) => (a -> b) -> PC m a b
- pcAnd :: (PCAnd m a1 b1 a2 b2 pct, PCAndCtx m a1 b1 a2 b2 pct) => PC m a1 b1 -> pct m a2 b2 -> PC m a1 b1
- pcTag :: (Typeable1Monad m, PolyTypeable (a -> b)) => FunctionTag -> PC m a' b'
- pcOr :: (Typeable1Monad m, LeastGen (a1 -> b1) (a2 -> b2) (agen -> bgen)) => PC m a1 b1 -> PC m a2 b2 -> PC m agen bgen
- pcNot :: Typeable1Monad m => PC m a1 b1 -> PC m a2 b2

# Documentation

pcCall :: (Typeable1Monad m, PolyTypeable (a -> b)) => (a -> b) -> PC m a bSource

Built-in pointcuts pcCall and pcType, and pointcut combinators pcAnd, pcOr and pcNot. Using typeclasses, pointcuts are open for new definitions of functions, like the Function wrapper. We also define pcSeq, that matches a sequence of two join points.

pcType :: (Typeable1Monad m, PolyTypeable (a -> b)) => (a -> b) -> PC m a bSource

pcAnd :: (PCAnd m a1 b1 a2 b2 pct, PCAndCtx m a1 b1 a2 b2 pct) => PC m a1 b1 -> pct m a2 b2 -> PC m a1 b1Source

pcTag :: (Typeable1Monad m, PolyTypeable (a -> b)) => FunctionTag -> PC m a' b'Source

pcOr :: (Typeable1Monad m, LeastGen (a1 -> b1) (a2 -> b2) (agen -> bgen)) => PC m a1 b1 -> PC m a2 b2 -> PC m agen bgenSource

Logical Or pointcut combinator.

pcNot :: Typeable1Monad m => PC m a1 b1 -> PC m a2 b2Source

Logical Not pointcut combinator.