hoist

Lift a monad morphism from m to n into a monad morphism from (t m) to (t n) The first argument to hoist must be a monad morphism, even though the type system does not enforce this
Lift a monad morphism from m to n into a monad morphism from (t m) to (t n) The first argument to hoist must be a monad morphism, even though the type system does not enforce this
Convert from one recursive type to another.
>>> showTree $ hoist (\(NonEmptyF h t) -> NodeF [h] (maybeToList t)) ( 'a' :| "bcd")
(a (b (c d)))
Transform the inner monad of a stream using a natural transformation. Internal
Change the base monad using invariant natural transformations
Change the wrapper.
Hoist DensityT through a monad transform.
Applies a transformation to the inner monad.
Transform the inner monad. The transformation is applied recursively through all the suspension points.
Apply a transformation to the transformed monad.
Perform a natural transformation over the underlying container of a selectable
Convert a Maybe computation to MaybeT.
Hoist the underlying Stream effect Note this is not very efficience since, just like mapAccumL_, it also needs to traverse and rebuild the whole stream.