Control.Monad.Free.Church
data
F
f a
improve
fromF
iterM
toF
retract
class
MonadFree
f m
liftF