japgolly.microlibs.recursion

Type members

Classlikes

sealed abstract class AtomOrComposite[A]

Useful for situations where composite items need to be wrapped when nested, but not at the top level.

Useful for situations where composite items need to be wrapped when nested, but not at the top level.

Allows "2 * (1 + 1)" instead of "(2 * (1 + 1))".

Companion
object
Companion
class

Beginner-friendly. No Greek.

Beginner-friendly. No Greek.

final class FAlgebraOps[F[_], A](self: F => A) extends AnyVal
final class FCoalgebraOps[F[_], A](self: F => A) extends AnyVal
sealed trait FixModule
@inline
final class FixOps[F[_]](self: Fix[F]) extends AnyVal
object Recursion
object RecursionFn

Types

type CVAlgebra[F[_], A] = F[Cofree[F, A]] => A

Course-of-values algebra

Course-of-values algebra

type CVCoalgebra[F[_], A] = A => F[Free[F, A]]

Course-of-values co-algebra

Course-of-values co-algebra

type FAlgebra[F[_], A] = F[A] => A
type FAlgebraM[M[_], F[_], A] = F[A] => M[A]
type FCoalgebra[F[_], A] = A => F[A]
type FCoalgebraM[M[_], F[_], A] = A => M[F[A]]
type Fix[F[_]] = Fix[F]
type RAlgebra[F[_], A] = F[(Fix[F], A)] => A
type RCoalgebra[F[_], A] = A => F[Either[Fix[F], A]]

Value members

Concrete fields

Implicits

Implicits

@inline
implicit def fAlgebraOps[F[_], A](self: F[A] => A): FAlgebraOps[F, A]
@inline
implicit def fCoalgebraOps[F[_], A](self: A => F[A]): FCoalgebraOps[F, A]