Control.Monad.Free.Church
data
F
f a
improve
fromF
toF
liftF
retract