Interface Foldable<F extends Kind<F,?>>

All Known Subinterfaces:
ComposedFoldable<F,G>, ComposedTraverse<F,G>, ConstFoldable<T>, ConstTraverse<T>, EitherFoldable<L>, EitherTraverse<L>, IdFoldable, IdTraverse, OptionFoldable, OptionTraverse, SequenceFoldable, SequenceTraverse, Traverse<F>, TryFoldable, TryTraverse

public interface Foldable<F extends Kind<F,?>>
  • Method Details

    • foldLeft

      <A, B> B foldLeft(Kind<F,? extends A> value, B initial, Function2<? super B,? super A,? extends B> mapper)
    • foldRight

      <A, B> Eval<B> foldRight(Kind<F,? extends A> value, Eval<? extends B> initial, Function2<? super A,? super Eval<? extends B>,? extends Eval<? extends B>> mapper)
    • fold

      default <A> A fold(Monoid<A> monoid, Kind<F,? extends A> value)
    • foldMap

      default <A, B> B foldMap(Monoid<B> monoid, Kind<F,? extends A> value, Function1<? super A,? extends B> mapper)
    • reduce

      default <A> Option<A> reduce(Kind<F,? extends A> value, Operator2<A> combinator)
    • foldM

      default <G extends Kind<G, ?>, A, B> Kind<G,B> foldM(Monad<G> monad, Kind<F,? extends A> value, B initial, Function2<? super B,? super A,? extends Kind<G,? extends B>> mapper)
    • compose

      static <F extends Kind<F, ?>, G extends Kind<G, ?>> Foldable<Nested<F,G>> compose(Foldable<F> f, Foldable<G> g)