fold package:free

Tear down a Free Monad using iteration.
The very definition of a free monad is that given a natural transformation you get a monad homomorphism.
Given an applicative homomorphism, you get a monad homomorphism.
The very definition of a free monad is that given a natural transformation you get a monad homomorphism.
The very definition of a free monad transformer is that given a natural transformation you get a monad transformer homomorphism.
Like fold with monadic result.
Unfold a cofree comonad from a seed.
Unfold a cofree comonad from a seed, monadically.
Unfold a CoiterT comonad transformer from a cokleisli arrow and an initial comonadic seed.
Unfold a free monad from a seed.
Unfold a free monad from a seed, monadically.
Unfold a free monad from a seed.
Unfold a free monad from a seed, monadically.