package recursion
This package contains recursion-scheme implementations. Because of the concision and the fact that we need a small subset of them, we re-implement them as opposed to depending on a library.
See libraries that offer larger sets of recursion-schemes (and docs) : * Droste https://index.scala-lang.org/higherkindness/droste * Matryoshka https://index.scala-lang.org/precog/matryoshka
- Alphabetic
- By Inheritance
- recursion
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- def ana[F[_], A](unfold: (A) => F[A])(a: A)(implicit arg0: Functor[F]): Fix[F]
- def anaM[M[_], F[_], A](unfold: (A) => M[F[A]])(a: A)(implicit arg0: Monad[M], arg1: Traverse[F]): M[Fix[F]]
- def cata[F[_], B](fold: (F[B]) => B)(tree: Fix[F])(implicit arg0: Functor[F]): B
- def hylo[F[_], A, B](unfold: (A) => F[A], fold: (F[B]) => B)(a: A)(implicit arg0: Functor[F]): B
- def hyloM[M[_], F[_], A, B](unfold: (A) => M[F[A]], fold: (F[B]) => M[B])(a: A)(implicit arg0: Monad[M], arg1: Traverse[F]): M[B]
- def preprocess[F[_]](nt: ~>[F, F])(tree: Fix[F])(implicit arg0: Functor[F]): Fix[F]