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.
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.
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.
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.
Applicative Functor for Free, implementation inspired by https://github.com/safareli/free/pull/31/
Invariant Monoidal for Free
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.
Alias for the free monad over the Function0
functor.
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
.