Packages

package aop

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Type Members

  1. 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 and Aspect.Function for convenient type aliases.

  2. 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()
  3. 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

  1. object Aspect extends Serializable
  2. object Instrument extends Serializable

Ungrouped