Folds

trait Folds

Typeclass instances and creation methods for folds

Companion:
object
class Object
trait Matchable
class Any
object Folds.type
object fold.type

Value members

Concrete methods

def bracket[R : _Safe, A, C](open: Eff[R, C])(step: (C, A) => Eff[R, C])(close: C => Eff[R, Unit]): Fold[[_] =>> Eff[R, _$24], A, Unit]
def fromFoldLeft[M[_] : Monad, A, B](b: B)(f: (B, A) => M[B]): Fold[M, A, B] { type S = B; }
Returns:

a fold from arguments of a fold left

def fromMonoidMap[M[_] : Monad, A, O : Monoid](f: A => O): Fold[M, A, O] { type S = O; }
Returns:

a fold which uses a Monoid to accumulate elements

def fromMonoidMapEval[M[_] : Monad, A, O : Monoid](f: A => M[O]): Fold[M, A, O] { type S = O; }
Returns:

a fold which uses a Monoid to accumulate elements

def fromSink[M[_] : Monad, A](action: A => M[Unit]): Fold[M, A, Unit]
def fromStart[M[_] : Monad, A, S1](action: M[S1]): Fold[M, A, S1] { type S = S1; }
Returns:

a fold with just a start action

def list[A]: Fold[Id, A, List[A]]
Returns:

a Fold which simply accumulates elements into a List