Safe Haskell | Safe-Infered |
---|
AOP.Internal.Joinpoint
- data Jp m a b = (Monad m, PolyTypeable (a -> m b)) => Jp (a -> m b) FunctionTag a
- newjp :: (Monad m, PolyTypeable (a -> m b)) => (a -> m b) -> FunctionTag -> a -> Jp m a b
- compareFun :: Monad m => t -> FunctionTag -> Jp m a b -> Bool
- compareType :: (Monad m, PolyTypeable (a -> m b)) => TypeRep -> Jp m a b -> Bool
- getJpArg :: Monad m => Jp m a b -> a
Documentation
data Jp m a b
Join points are function applications. We store the function and the argument. | We add a FunctionTag value to use for function equality (see module Function)
Constructors
(Monad m, PolyTypeable (a -> m b)) => Jp (a -> m b) FunctionTag a |
newjp :: (Monad m, PolyTypeable (a -> m b)) => (a -> m b) -> FunctionTag -> a -> Jp m a b
Creates a join point with given function, tag, and argument
compareFun :: Monad m => t -> FunctionTag -> Jp m a b -> Bool
Comparing identity of functions: | When given a join point with a regular function (signaled by the default tag) | then we use StableNames for comparison. If the functions are wrapped, | we compare the tags
compareType :: (Monad m, PolyTypeable (a -> m b)) => TypeRep -> Jp m a b -> Bool
Compare types to see if type representation t is less general | than the type of the function associated to the join point