0 | module Control.Monad.Free 1 | 2 | public export 3 | interface MonadFree (0 f : Type -> Type) (0 m : Type -> Type) where 4 | wrap : (Functor f, Monad m) => f (m a) -> m a 5 | 6 | export 7 | liftF : (Functor f, Monad m, MonadFree f m) => f a -> m a 8 | liftF = wrap . map pure 9 |