Alias for flatMap
Runs a single step, using a function that extracts the resumption from its suspension functor.
Runs a Source
all the way to the end, tail-recursively, collecting the produced values.
Feed the given source to this Sink
.
Drive this Source
with the given Sink.
Duplication in Free
as a comonad in the endofunctor category.
Extension in Free
as a comonad in the endofunctor category.
Extraction from Free
as a comonad in the endofunctor category.
Feed the given stream to this Source
.
Binds the given continuation to the result of this computation.
Substitutes a free monad over the given functor into the suspension functor of this program.
Substitutes a free monad over the given functor into the suspension functor of this program.
Free
is a monad in an endofunctor category and this is its monadic bind.
Catamorphism.
Catamorphism. Run the first given function if Return, otherwise, the second given function.
Catamorphism for Free
.
Catamorphism for Free
.
Runs to completion, mapping the suspension with the given transformation at each step and
accumulating into the monad M
.
Folds this free recursion to the right using the given natural transformations.
Runs to completion, allowing the resumption function to thread an arbitrary state of type B
.
Variant of foldRun
that allows to interleave effect M
at each step.
Runs to completion, using a function that extracts the resumption from its suspension functor.
Modifies the first suspension with the given natural transformation.
Changes the suspension functor by the given natural transformation.
Evaluates a single layer of the free monad *
Evaluates a single layer of the free monad *
Runs a trampoline all the way to the end, tail-recursively.
Runs to completion, using a function that maps the resumption from S
to a monad M
.
Runs to completion, using a function that maps the resumption from S
to a monad M
.
7.0.1
Run Free using constant stack.
Evaluate one layer in the free monad, re-associating any left-nested binds to the right and pulling the first suspension to the top.
Evaluate one layer in the free monad, re-associating any left-nested binds to the right and pulling the first suspension to the top.
Applies a function in a comonad to the corresponding value in this monad, annihilating both.
Applies a function f
to a value in this monad and a corresponding value in the dual comonad, annihilating both.
Interleave this computation with another, combining the results with the given function.
A free monad for a type constructor
S
. Binding is done using the heap instead of the stack, allowing tail-call elimination.