Safe HaskellSafe-Infered

AOP.Internal.Joinpoint

Synopsis

Documentation

data Jp 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

PolyTypeable (a -> b) => Jp (a -> b) FunctionTag a 

newjp :: PolyTypeable (a -> b) => (a -> b) -> FunctionTag -> a -> Jp a b

Creates a join point with given function, tag, and argument

compareFun :: t -> FunctionTag -> Jp 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 :: PolyTypeable (a -> b) => TypeRep -> Jp 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

getJpArg :: Jp a b -> a

Gets the argument bound to the join point