Runs a single step, using a function that extracts the resumption from its suspension functor.
Source all the way to the end, tail-recursively, collecting the produced values.
Feed the given source to this
Source with the given Sink.
Feed the given stream to this
Binds the given continuation to the result of this computation.
Runs to completion, allowing the resumption function to thread an arbitrary state of type
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.
Runs a trampoline all the way to the end, tail-recursively.
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.