Control.Monad.Free
type PFree
type Free f
class MonadFree f m
class RunMonadFree f m