Control.Monad.Free
class
MonadFree
f m
data
Free
f a
retract
liftF
iter
iterM
hoistFree
_Pure
_Free