Package

cats

free

Permalink

package free

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. free
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class Cofree[S[_], A](head: A, tail: Eval[S[Cofree[S, A]]]) extends Product with Serializable

    Permalink

    A free comonad for some branching functor S.

    A free comonad for some branching functor S. Branching is done lazily using Eval. A tree with data at the branches, as opposed to Free which is a tree with data at the leaves. Not an instruction set functor made into a program monad as in Free, but an instruction set's outputs as a functor made into a tree of the possible worlds reachable using the instruction set.

    This Scala implementation of Cofree and its usages are derived from Scalaz's Cofree, originally written by RĂșnar Bjarnason.

  2. sealed abstract class ContravariantCoyoneda[F[_], A] extends Serializable

    Permalink

    The free contravariant functor on F.

    The free contravariant functor on F. This is isomorphic to F as long as F itself is a contravariant functor. The function from F[A] to ContravariantCoyoneda[F,A] exists even when F is not a contravariant functor. Implemented using a List of functions for stack-safety.

  3. sealed abstract class Coyoneda[F[_], A] extends Serializable

    Permalink

    The dual view of the Yoneda lemma.

    The dual view of the Yoneda lemma. The free functor on F. This is isomorphic to F as long as F itself is a functor. The function from F[A] to Coyoneda[F,A] exists even when F is not a functor. Implemented using a List of functions for stack-safety.

  4. sealed abstract class Free[S[_], A] extends Product with Serializable

    Permalink

    A free operational monad for some functor S.

    A free operational monad for some functor S. Binding is done using the heap instead of the stack, allowing tail-call elimination.

  5. sealed abstract class FreeApplicative[F[_], A] extends Product with Serializable

    Permalink

    Applicative Functor for Free, implementation inspired by https://github.com/safareli/free/pull/31/

  6. sealed abstract class FreeInvariantMonoidal[F[_], A] extends Product with Serializable

    Permalink

    Invariant Monoidal for Free

  7. sealed abstract class FreeT[S[_], M[_], A] extends Product with Serializable

    Permalink

    FreeT is a monad transformer for Free monads over a Functor S

    FreeT is a monad transformer for Free monads over a Functor S

    Stack safety for Free and FreeT is based on the paper Stack Safety for Free by Phil Freeman

    This Scala implementation of FreeT and its usages are derived from Scalaz's FreeT, originally written by Brian McKenna.

  8. type Trampoline[A] = Free[Function0, A]

    Permalink

    Alias for the free monad over the Function0 functor.

  9. abstract class Yoneda[F[_], A] extends Serializable

    Permalink

    The cofree functor for F.

    The cofree functor for F. The Yoneda lemma says that Yoneda[F,A] is isomorphic to F[A] for any functor F. The function from Yoneda[F, A] to F[A] exists even when we have forgotten that F is a functor. Can be seen as a partially applied map for the functor F.

Value Members

  1. object Cofree extends CofreeInstances with Serializable

    Permalink
  2. object ContravariantCoyoneda extends Serializable

    Permalink
  3. object Coyoneda extends Serializable

    Permalink
  4. object Free extends FreeInstances with Serializable

    Permalink
  5. object FreeApplicative extends Serializable

    Permalink
  6. object FreeInvariantMonoidal extends Serializable

    Permalink
  7. object FreeT extends FreeTInstances with Serializable

    Permalink
  8. object Trampoline extends TrampolineFunctions with Serializable

    Permalink
  9. object Yoneda extends Serializable

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped