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 implicit class FixOps[F[_]](self: Fix[F]) extends AnyVal
object Recursion

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

final implicit def FixOps[F[_]](self: Fix[F]): FixOps[F]
@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]