Packages

c

com.twitter.algebird

EventuallySemigroup

class EventuallySemigroup[E, O] extends Semigroup[Either[E, O]]

Classes that support algebraic structures with dynamic switching between two representations, the original type O and the eventual type E. In the case of Semigroup, we specify - Two Semigroups eventualSemigroup and originalSemigroup - A Semigroup homomorphism convert: O => E - A conditional mustConvert: O => Boolean Then we get a Semigroup[Either[E,O]], where: Left(x) + Left(y) = Left(x+y) Left(x) + Right(y) = Left(x+convert(y)) Right(x) + Left(y) = Left(convert(x)+y) Right(x) + Right(y) = Left(convert(x+y)) if mustConvert(x+y) Right(x+y) otherwise. EventuallyMonoid, EventuallyGroup, and EventuallyRing are defined analogously, with the contract that convert respect the appropriate structure.

Linear Supertypes
Semigroup[Either[E, O]], AdditiveSemigroup[Either[E, O]], cats.kernel.Semigroup[Either[E, O]], Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EventuallySemigroup
  2. Semigroup
  3. AdditiveSemigroup
  4. Semigroup
  5. Serializable
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new EventuallySemigroup(convert: (O) => E)(mustConvert: (O) => Boolean)(implicit eventualSemigroup: Semigroup[E], originalSemigroup: Semigroup[O])

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def additive: algebra.Semigroup[Either[E, O]]
    Definition Classes
    Semigroup → AdditiveSemigroup
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. def combine(l: Either[E, O], r: Either[E, O]): Either[E, O]
    Definition Classes
    Semigroup → Semigroup
  8. def combineAllOption(iter: TraversableOnce[Either[E, O]]): Option[Either[E, O]]
    Definition Classes
    Semigroup → Semigroup
  9. def combineN(a: Either[E, O], n: Int): Either[E, O]
    Definition Classes
    Semigroup
  10. def conditionallyConvert(o: O): Either[E, O]
    Attributes
    protected
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. def left(e: E): Either[E, O]
    Attributes
    protected
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. def plus(x: Either[E, O], y: Either[E, O]): Either[E, O]
    Definition Classes
    EventuallySemigroup → AdditiveSemigroup
  22. def positiveSumN(a: Either[E, O], n: Int): Either[E, O]
    Attributes
    protected[this]
    Definition Classes
    AdditiveSemigroup
  23. def repeatedCombineN(a: Either[E, O], n: Int): Either[E, O]
    Attributes
    protected[this]
    Definition Classes
    Semigroup
  24. def sumN(a: Either[E, O], n: Int): Either[E, O]
    Definition Classes
    AdditiveSemigroup
  25. def sumOption(iter: TraversableOnce[Either[E, O]]): Option[Either[E, O]]

    Returns an instance of T calculated by summing all instances in iter in one pass.

    Returns an instance of T calculated by summing all instances in iter in one pass. Returns None if iter is empty, else Some[T].

    iter

    instances of T to be combined

    returns

    None if iter is empty, else an option value containing the summed T

    Definition Classes
    EventuallySemigroupSemigroup
    Note

    Override if there is a faster way to compute this sum than iter.reduceLeftOption using plus.

  26. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  27. def toString(): String
    Definition Classes
    AnyRef → Any
  28. def trySum(iter: TraversableOnce[Either[E, O]]): Option[Either[E, O]]
    Definition Classes
    Semigroup → AdditiveSemigroup
  29. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  30. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  31. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Semigroup[Either[E, O]]

Inherited from AdditiveSemigroup[Either[E, O]]

Inherited from cats.kernel.Semigroup[Either[E, O]]

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped