package aop
- Alphabetic
- Public
- Protected
Type Members
- trait Aspect[Alg[_[_]], Dom[_], Cod[_]] extends Instrument[Alg]
Type class supporting Aspect-Oriented Programming (AOP) for a tagless final algebra.
Type class supporting Aspect-Oriented Programming (AOP) for a tagless final algebra. The behaviour of this aspect is defined by two type classes (or constraints) - one for the domain (arguments) and one for the codomain (result) of each method in the algebra.
Note: This feature is experimental, API is likely to change.
- Alg
The algebra to which this aspect applies.
- Dom
Type class / constraint that should exist for all parameter types of each algebra methods (domain).
- Cod
Type class / constraint that should exist for the return type of each algebra methods (codomain).
- See also
Aspect.Domain
,Aspect.Codomain
andAspect.Function
for convenient type aliases.
- trait Instrument[Alg[_[_]]] extends FunctorK[Alg]
Type class for instrumenting an algebra.
Type class for instrumenting an algebra. Note: This feature is experimental, API is likely to change.
- Alg
The algebra to be instrumented.
- Annotations
- @implicitNotFound()
- final case class Instrumentation[F[_], A](value: F[A], algebraName: String, methodName: String) extends Product with Serializable
The result of an algebra method
F[A]
instrumented with the method name.
Value Members
- object Aspect extends Serializable
- object Instrument extends Serializable