Control.Monad.Free.Church

data F f a

improve

fromF

iterM

toF

retract

class MonadFree f m

liftF