final case class Weave[F[_], Dom[_], Cod[_], A](algebraName: String, domain: List[List[Advice[Eval, Dom]]], codomain: Aux[F, Cod, A]) extends Product with Serializable
An Aspect.Weave represents a reified cross-cutting concern for a single method of an algebra. It can be applied to all method arguments, result, or both. Its behaviour is driven by type classes.
- F
 The underlying algebra carrier type which is the result of forwarding the method call.
- Dom
 Type class / constraint that should exist for all parameter types except implicits (domain).
- Cod
 Type class / constraint that should exist for the return type of the method (codomain).
- A
 Return type of the method.
- domain
 Aspect.Advicefor all arguments except implicits. Target inEvalto capture by-name arguments.- codomain
 Aspect.Advicefor the result of the method. Target inF- the underlying algebra carrier.
- Source
 - Aspect.scala
 - See also
 Weave.Domain,Weave.CodomainandWeave.Functionfor convenient type aliases.
- Alphabetic
 - By Inheritance
 
- Weave
 - Serializable
 - Product
 - Equals
 - AnyRef
 - Any
 
- Hide All
 - Show All
 
- Public
 - Protected
 
Instance Constructors
Value Members
-   final  def !=(arg0: Any): Boolean
- Definition Classes
 - AnyRef → Any
 
 -   final  def ##: Int
- Definition Classes
 - AnyRef → Any
 
 -   final  def ==(arg0: Any): Boolean
- Definition Classes
 - AnyRef → Any
 
 -  val algebraName: String
 -   final  def asInstanceOf[T0]: T0
- Definition Classes
 - Any
 
 -    def clone(): AnyRef
- Attributes
 - protected[lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
 
 -  val codomain: Aux[F, Cod, A]
 -  val domain: List[List[Advice[Eval, Dom]]]
 -   final  def eq(arg0: AnyRef): Boolean
- Definition Classes
 - AnyRef
 
 -   final  def getClass(): Class[_ <: AnyRef]
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native() @IntrinsicCandidate()
 
 -    def instrumentation: Instrumentation[F, A]
Convert this Weave to an Instrumentation, throwing away information about the
domain. -   final  def isInstanceOf[T0]: Boolean
- Definition Classes
 - Any
 
 -   final  def ne(arg0: AnyRef): Boolean
- Definition Classes
 - AnyRef
 
 -   final  def notify(): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @native() @IntrinsicCandidate()
 
 -   final  def notifyAll(): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @native() @IntrinsicCandidate()
 
 -    def productElementNames: Iterator[String]
- Definition Classes
 - Product
 
 -   final  def synchronized[T0](arg0: => T0): T0
- Definition Classes
 - AnyRef
 
 -   final  def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @throws(classOf[java.lang.InterruptedException])
 
 -   final  def wait(arg0: Long): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @throws(classOf[java.lang.InterruptedException]) @native()
 
 -   final  def wait(): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @throws(classOf[java.lang.InterruptedException])