recursion-schemes-ext 0.2.0.0 → 0.2.0.1
raw patch · 2 files changed
+4/−5 lines, 2 filesdep ~composition-preludePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: composition-prelude
API changes (from Hackage documentation)
- Data.Functor.Foldable.Examples: AddF :: r_agvt -> r_agvt -> BertF r_agvt
+ Data.Functor.Foldable.Examples: AddF :: r_agBz -> r_agBz -> BertF r_agBz
- Data.Functor.Foldable.Examples: BertF :: Ernie -> BertF r_agvt
+ Data.Functor.Foldable.Examples: BertF :: Ernie -> BertF r_agBz
- Data.Functor.Foldable.Examples: ErnieF :: Bert -> ErnieF r_aggj
+ Data.Functor.Foldable.Examples: ErnieF :: Bert -> ErnieF r_agmp
- Data.Functor.Foldable.Examples: ListF :: [r_aggj] -> ErnieF r_aggj
+ Data.Functor.Foldable.Examples: ListF :: [r_agmp] -> ErnieF r_agmp
- Data.Functor.Foldable.Examples: MultiplyF :: r_aggj -> r_aggj -> ErnieF r_aggj
+ Data.Functor.Foldable.Examples: MultiplyF :: r_agmp -> r_agmp -> ErnieF r_agmp
- Data.Functor.Foldable.Examples: NumF :: Integer -> BertF r_agvt
+ Data.Functor.Foldable.Examples: NumF :: Integer -> BertF r_agBz
- Data.Functor.Foldable.Examples: StringF :: String -> BertF r_agvt
+ Data.Functor.Foldable.Examples: StringF :: String -> BertF r_agBz
- Data.Functor.Foldable.Examples: data BertF r_agvt
+ Data.Functor.Foldable.Examples: data BertF r_agBz
- Data.Functor.Foldable.Examples: data ErnieF r_aggj
+ Data.Functor.Foldable.Examples: data ErnieF r_agmp
Files
recursion-schemes-ext.cabal view
@@ -1,5 +1,5 @@ name: recursion-schemes-ext-version: 0.2.0.0+version: 0.2.0.1 synopsis: Amateur addenda to recursion-schemes description: This package provides some exotic recursion schemes that I miss when I leave Idris. homepage: https://hub.darcs.net/vmchale/recursion-schemes-ext#readme
src/Data/Functor/Foldable/Exotic.hs view
@@ -29,7 +29,6 @@ import Control.Arrow import Control.Composition-import Control.Monad import Data.Functor.Foldable -- | Class that yields g-algebra homomorphisms between mutually recursive types.@@ -105,12 +104,12 @@ -- | A monadic catamorphism cataM :: (Recursive t, Traversable (Base t), Monad m) => (Base t a -> m a) -> (t -> m a)-cataM phi = fix (fmap (phi <=<) (project -.* mapM))+cataM phi = c where c = phi <=< (mapM c . project) -- | A monadic anamorphism anaM :: (Corecursive t, Traversable (Base t), Monad m) => (a -> m (Base t a)) -> (a -> m t)-anaM = fix (fmap embed .** ((=<<) .* fmap traverse >=> fmap))+anaM psi = a where a = (fmap embed . mapM a) <=< psi -- | A monadic hylomorphism hyloM :: (Functor f, Monad m, Traversable f) => (f b -> m b) -> (a -> m (f a)) -> a -> m b-hyloM = fix (fmap (`flip` id) (ap .* ((<=<) .** (liftM2 fmap (<=<) <$> (mapM .*)))))+hyloM phi psi = h where h = phi <=< mapM h <=< psi