Packages

trait Bifoldable[F[_, _]] extends Serializable

A type class abstracting over types that give rise to two independent cats.Foldables.

Self Type
Bifoldable[F]
Annotations
@implicitNotFound( ... ) @typeclass( ... , ... )
Source
Bifoldable.scala
Linear Supertypes
Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Bifoldable
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def bifoldLeft[A, B, C](fab: F[A, B], c: C)(f: (C, A) ⇒ C, g: (C, B) ⇒ C): C

    Collapse the structure with a left-associative function

    Collapse the structure with a left-associative function

    Example:

    scala> import cats.Bifoldable
    scala> val fab = (List(1), 2)
    
    Folding by addition to zero:
    scala> Bifoldable[Tuple2].bifoldLeft(fab, Option(0))((c, a) => c.map(_ + a.head), (c, b) => c.map(_ + b))
    res0: Option[Int] = Some(3)

    With syntax extensions, bifoldLeft can be used like:

    scala> import cats.implicits._
    scala> fab.bifoldLeft(Option(0))((c, a) => c.map(_ + a.head), (c, b) => c.map(_ + b))
    res1: Option[Int] = Some(3)
  2. abstract def bifoldRight[A, B, C](fab: F[A, B], c: Eval[C])(f: (A, Eval[C]) ⇒ Eval[C], g: (B, Eval[C]) ⇒ Eval[C]): Eval[C]

    Collapse the structure with a right-associative function Right associative lazy bifold on F using the folding function 'f' and 'g'.

    Collapse the structure with a right-associative function Right associative lazy bifold on F using the folding function 'f' and 'g'.

    This method evaluates c lazily (in some cases it will not be needed), and returns a lazy value. We are using (_, Eval[C]) => Eval[C] to support laziness in a stack-safe way. Chained computation should be performed via .map and .flatMap.

    For more detailed information about how this method works see the documentation for Eval[_].

    Example:

    scala> import cats.Bifoldable
    scala> val fab = (List(1), 2)
    
    Folding by addition to zero:
    scala> val bifolded1 = Bifoldable[Tuple2].bifoldRight(fab, Eval.now(0))((a, c) => c.map(_ + a.head), (b, c) => c.map(_ + b))
    scala> bifolded1.value
    res0: Int = 3

    With syntax extensions, bifoldRight can be used like:

    scala> import cats.implicits._
    scala> val bifolded2 = fab.bifoldRight(Eval.now(0))((a, c) => c.map(_ + a.head), (b, c) => c.map(_ + b))
    scala> bifolded2.value
    res1: Int = 3

Concrete 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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def bifold[A, B](fab: F[A, B])(implicit A: Monoid[A], B: Monoid[B]): (A, B)
  6. def bifoldMap[A, B, C](fab: F[A, B])(f: (A) ⇒ C, g: (B) ⇒ C)(implicit C: Monoid[C]): C

    Collapse the structure by mapping each element to an element of a type that has a cats.Monoid

  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  8. def compose[G[_, _]](implicit ev: Bifoldable[G]): Bifoldable[[α, β]F[G[α, β], G[α, β]]]
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped