monadic-recursion-schemes-0.1.0.0: Recursion Schemes for Monadic version.

Safe HaskellSafe
LanguageHaskell2010

Data.Functor.Foldable.Monadic

Documentation

cataM :: (Monad m, Traversable (Base t), Recursive t) => (Base t a -> m a) -> t -> m a Source #

anaM :: (Monad m, Traversable (Base t), Corecursive t) => (a -> m (Base t a)) -> a -> m t Source #

paraM :: (Monad m, Traversable (Base t), Recursive t) => (Base t (t, a) -> m a) -> t -> m a Source #

apoM :: (Monad m, Traversable (Base t), Corecursive t) => (a -> m (Base t (Either t a))) -> a -> m t Source #

histoM :: (Monad m, Traversable (Base t), Recursive t) => (Base t (Cofree (Base t) a) -> m a) -> t -> m a Source #

futuM :: (Monad m, Traversable (Base t), Corecursive t) => (a -> m (Base t (Free (Base t) a))) -> a -> m t Source #

zygoM :: (Monad m, Traversable (Base t), Recursive t) => (Base t a -> m a) -> (Base t (a, b) -> m b) -> t -> m b Source #

cozygoM :: (Monad m, Traversable (Base t), Corecursive t) => (a -> m (Base t a)) -> (b -> m (Base t (Either a b))) -> b -> m t Source #

hyloM :: (Monad m, Traversable t) => (t b -> m b) -> (a -> m (t a)) -> a -> m b Source #