Module

Control.MonadPlus.Free

Package
purescript-free-monadplus
Repository
Risto-Stevcev/purescript-free-monadplus

#iter Source

iter :: forall a f. Functor f => (f a -> a) -> (List a -> a) -> FreeMonadPlus f a -> a

#iterM Source

iterM :: forall a m f. Monad m => Functor f => (f (m a) -> m a) -> (List (m a) -> m a) -> FreeMonadPlus f a -> m a

#hoistFree Source

hoistFree :: forall g f. Functor g => (f ~> g) -> (FreeMonadPlus f) ~> (FreeMonadPlus g)

#liftFree Source

liftFree :: forall f. Functor f => f ~> (FreeMonadPlus f)

#lowerFree Source

lowerFree :: forall f. MonadPlus f => (FreeMonadPlus f) ~> f

#foldFree Source

foldFree :: forall m f. MonadPlus m => Functor f => (f ~> m) -> (FreeMonadPlus f) ~> m