packages feed

monadic-recursion-schemes 0.1.3.3 → 0.1.3.4

raw patch · 3 files changed

+17/−5 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Data.Functor.Foldable.Monadic: chronoM :: (Monad m, Traversable (Base t), Recursive t, Corecursive t) => (Base t (Cofree (Base t) c) -> m c) -> (a -> m (Base t (Free (Base t) a))) -> a -> m c
+ Data.Functor.Foldable.Monadic: chronoM :: forall m t a b. (Monad m, Traversable (Base t), Recursive t, Corecursive t) => (Base t (Cofree (Base t) b) -> m b) -> (a -> m (Base t (Free (Base t) a))) -> a -> m b
- Data.Functor.Foldable.Monadic: hyloM' :: (Monad m, Traversable (Base t), Recursive t, Corecursive t) => (Base t c -> m c) -> (a -> m (Base t a)) -> a -> m c
+ Data.Functor.Foldable.Monadic: hyloM' :: forall m t a b. (Monad m, Traversable (Base t), Recursive t, Corecursive t) => (Base t b -> m b) -> (a -> m (Base t a)) -> a -> m b

Files

CHANGELOG.md view
@@ -27,3 +27,8 @@ ## 0.1.3.3 -- 2020-05-13  * added comment++## 0.1.3.4 -- 2020-05-13++* add type signature for hyloM' and chronoM.+
monadic-recursion-schemes.cabal view
@@ -4,7 +4,7 @@ -- http://haskell.org/cabal/users-guide/  name:                monadic-recursion-schemes-version:             0.1.3.3+version:             0.1.3.4 synopsis:            Recursion Schemes for Monadic version. description:         Yet another recursion schemes for monadic style, depends on recursion-schemes. homepage:            https://github.com/cutsea110/monadic-recursion-schemes.git
src/Data/Functor/Foldable/Monadic.hs view
@@ -6,6 +6,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeFamilyDependencies #-} module Data.Functor.Foldable.Monadic   ( cataM, anaM   , paraM, apoM@@ -114,9 +115,12 @@ hyloM phi psi = h   where h = phi <=< mapM h <=< psi --- FIXME: I couldn't compile with this type signature. -- | hylomorphism on combination variant of ana to cata-hyloM' phi psi = cataM phi <=< anaM psi+hyloM' :: forall m t a b. (Monad m, Traversable (Base t), Recursive t, Corecursive t)+       => (Base t b -> m b)   -- ^ algebra+       -> (a -> m (Base t a)) -- ^ coalgebra+       -> a -> m b+hyloM' phi psi = (cataM phi :: t -> m b) <=< (anaM psi :: a -> m t)  -- | metamorphism on recursive variant metaM :: (Monad m, Traversable (Base t), Recursive s, Corecursive t, Base s ~ Base t)@@ -143,9 +147,12 @@         g (Pure  a) = psi a         g (Free fb) = return fb --- FIXME: I couldn't compile with this type signature. -- | chronomorphism on combination variant of futu to hist-chronoM phi psi = histoM phi <=< futuM psi+chronoM :: forall m t a b. (Monad m, Traversable (Base t), Recursive t, Corecursive t)+        => (Base t (Cofree (Base t) b) -> m b) -- ^ algebra+        -> (a -> m (Base t (Free (Base t) a))) -- ^ coalgebra+        -> a -> m b+chronoM phi psi = (histoM phi :: t -> m b) <=< (futuM psi :: a -> m t)  cochronoM :: (Monad m, Corecursive c, Traversable (Base c), Traversable (Base t), Recursive t)           => (Base t (Cofree (Base t) a) -> m a) -- ^ algebra