Fold

object Fold
Companion
class
class Object
trait Matchable
class Any

Givens

Givens

given A[M[_], T](using val m: Monad[M]): Applicative[[_] =>> Fold[M, T, _$19]]

Applicative instance

Applicative instance

This means that we can write:

val mean: Fold[Int, Int] = (sum |@| count)(_ / _)

An Applicative instance is also a Functor instance so we can write:

val meanTimes2 = mean.map(_ * 2)

given Monoid_Fold[M[_], A](using val m: Monad[M]): Monoid[Fold[M, A, Unit]]