Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- cataM :: (Monad m, Traversable (Base t), Recursive t) => (Base t a -> m a) -> t -> m a
- preproM :: (Monad m, Traversable (Base t), Recursive t, Corecursive t) => (Base t t -> m (Base t t)) -> (Base t a -> m a) -> t -> m a
- paraM :: (Monad m, Traversable (Base t), Recursive t) => (Base t (t, a) -> m a) -> t -> m a
- zygoM :: (Monad m, Traversable (Base t), Recursive t) => (Base t a -> m a) -> (Base t (a, b) -> m b) -> t -> m b
- histoM :: (Monad m, Traversable (Base t), Recursive t) => (Base t (Cofree (Base t) a) -> m a) -> t -> m a
- histoM' :: (Monad m, Traversable (Base t), Recursive t) => (Base t (Cofree (Base t) a) -> m a) -> t -> m a
- dynaM :: (Monad m, Traversable (Base t), Recursive t, Corecursive t) => (Base t (Cofree (Base t) b) -> m b) -> (a -> m (Base t a)) -> a -> m b
- dynaM' :: forall m t a c. (Monad m, Traversable (Base t), Recursive t, Corecursive t) => (Base t (Cofree (Base t) c) -> m c) -> (a -> m (Base t a)) -> a -> m c
- dynaM'' :: (Monad m, Traversable t) => (t (Cofree t c) -> m c) -> (a -> m (t a)) -> a -> m c
- anaM :: (Monad m, Traversable (Base t), Corecursive t) => (a -> m (Base t a)) -> a -> m t
- postproM :: (Monad m, Traversable (Base t), Recursive t, Corecursive t) => (Base t t -> m (Base t t)) -> (a -> m (Base t a)) -> a -> m t
- apoM :: (Monad m, Traversable (Base t), Corecursive t) => (a -> m (Base t (Either t a))) -> a -> m t
- cozygoM :: (Monad m, Traversable (Base t), Corecursive t) => (a -> m (Base t a)) -> (b -> m (Base t (Either a b))) -> b -> m t
- futuM :: (Monad m, Traversable (Base t), Corecursive t) => (a -> m (Base t (Free (Base t) a))) -> a -> m t
- futuM' :: (Monad m, Traversable (Base t), Corecursive t) => (a -> m (Base t (Free (Base t) a))) -> a -> m t
- codynaM :: (Monad m, Traversable t) => (t b -> m b) -> (a -> m (t (Free t a))) -> a -> m b
- codynaM' :: (Monad m, Corecursive c, Traversable (Base c), Traversable (Base t), Recursive t) => (Base t (Cofree (Base t) a) -> m a) -> (a -> m (Base c a)) -> t -> m c
- codynaM'' :: (Monad m, Traversable t) => (t b -> m b) -> (a -> m (t (Free t a))) -> a -> m b
- hyloM :: (Monad m, Traversable t) => (t b -> m b) -> (a -> m (t a)) -> a -> m b
- metaM :: (Monad m, Traversable (Base t), Recursive s, Corecursive t, Base s ~ Base t) => (Base t t -> m t) -> (s -> m (Base s s)) -> s -> m t
- 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
- metaM' :: (Monad m, Corecursive c, Traversable (Base c), Traversable (Base t), Recursive t) => (Base t a -> m a) -> (a -> m (Base c a)) -> t -> m c
- 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
- cochronoM :: (Monad m, Corecursive c, Traversable (Base c), Traversable (Base t), Recursive t) => (Base t (Cofree (Base t) a) -> m a) -> (a -> m (Base c (Free (Base c) a))) -> t -> m c
- chronoM' :: (Monad m, Traversable t) => (t (Cofree t b) -> m b) -> (a -> m (t (Free t a))) -> a -> m b
- gcataM :: (Monad m, Comonad w, Traversable w, Traversable (Base t), Recursive t, b ~ w a) => (Base t (w b) -> m (w (Base t b))) -> (Base t (w a) -> m a) -> t -> m a
- gcataM' :: (Monad m, Comonad w, Traversable w, Traversable (Base t), Recursive t, b ~ w a) => (Base t (w b) -> m (w (Base t b))) -> (Base t (w a) -> m a) -> t -> m a
- mutuM :: (Monad m, Traversable (Base t), Recursive t) => (Base t (a, b) -> m b) -> (Base t (a, b) -> m a) -> t -> m b
- comutuM :: (Monad m, Traversable (Base t), Corecursive t) => (b -> m (Base t (Either a b))) -> (a -> m (Base t (Either a b))) -> b -> m t
- mutuM' :: (Monad m, Traversable (Base t), Recursive t) => (a -> b) -> (Base t a -> m a) -> t -> m b
- comutuM' :: (Monad m, Traversable (Base t), Corecursive t) => (b -> a) -> (a -> m (Base t a)) -> b -> m t
- cascadeM :: (Monad m, Corecursive (f a), Traversable (Base (f a)), Traversable f, Recursive (f a)) => (a -> m a) -> f a -> m (f a)
- iterateM :: (Monad m, Corecursive (f a), Traversable (Base (f a)), Traversable f, Recursive (f a)) => (a -> m a) -> f a -> m (f a)
Folding
:: (Monad m, Traversable (Base t), Recursive t) | |
=> (Base t a -> m a) | algebra |
-> t | |
-> m a |
catamorphism
:: (Monad m, Traversable (Base t), Recursive t, Corecursive t) | |
=> (Base t t -> m (Base t t)) | monadic natural transformation |
-> (Base t a -> m a) | algebra |
-> t | |
-> m a |
prepromorphism
:: (Monad m, Traversable (Base t), Recursive t) | |
=> (Base t (t, a) -> m a) | algebra |
-> t | |
-> m a |
paramorphism
:: (Monad m, Traversable (Base t), Recursive t) | |
=> (Base t a -> m a) | algebra for fst |
-> (Base t (a, b) -> m b) | algebra for snd from product |
-> t | |
-> m b |
zygomorphism
:: (Monad m, Traversable (Base t), Recursive t) | |
=> (Base t (Cofree (Base t) a) -> m a) | algebra |
-> t | |
-> m a |
histomorphism on anamorphism variant
:: (Monad m, Traversable (Base t), Recursive t) | |
=> (Base t (Cofree (Base t) a) -> m a) | algebra |
-> t | |
-> m a |
histomorphism on catamorphism variant
:: (Monad m, Traversable (Base t), Recursive t, Corecursive t) | |
=> (Base t (Cofree (Base t) b) -> m b) | algebra |
-> (a -> m (Base t a)) | coalgebra |
-> a | |
-> m b |
dynamorphism on recursive variant over chronomorphism
:: forall m t a c. (Monad m, Traversable (Base t), Recursive t, Corecursive t) | |
=> (Base t (Cofree (Base t) c) -> m c) | algebra |
-> (a -> m (Base t a)) | coalgebra |
-> a | |
-> m c |
dynamorphism on combination variant of ana to histo
:: (Monad m, Traversable t) | |
=> (t (Cofree t c) -> m c) | algebra |
-> (a -> m (t a)) | coalgebra |
-> a | |
-> m c |
dynamorphism on recursive variant over hylomorphism
Unfolding
:: (Monad m, Traversable (Base t), Corecursive t) | |
=> (a -> m (Base t a)) | coalgebra |
-> a | |
-> m t |
anamorphism
:: (Monad m, Traversable (Base t), Recursive t, Corecursive t) | |
=> (Base t t -> m (Base t t)) | monadic natural transformation |
-> (a -> m (Base t a)) | coalgebra |
-> a | |
-> m t |
postpromorphism
:: (Monad m, Traversable (Base t), Corecursive t) | |
=> (a -> m (Base t (Either t a))) | coalgebra |
-> a | |
-> m t |
apomorphism
:: (Monad m, Traversable (Base t), Corecursive t) | |
=> (a -> m (Base t a)) | coalgebra for fst |
-> (b -> m (Base t (Either a b))) | coalgebra for snd to coproduct |
-> b | |
-> m t |
cozygomorphism
:: (Monad m, Traversable (Base t), Corecursive t) | |
=> (a -> m (Base t (Free (Base t) a))) | coalgebra |
-> a | |
-> m t |
futumorphism on catamorphism variant
:: (Monad m, Traversable (Base t), Corecursive t) | |
=> (a -> m (Base t (Free (Base t) a))) | coalgebra |
-> a | |
-> m t |
futumorphism on anamorphism variant
:: (Monad m, Traversable t) | |
=> (t b -> m b) | algebra |
-> (a -> m (t (Free t a))) | coalgebra |
-> a | |
-> m b |
codynamorphism on recursive variant over chronomorphism
:: (Monad m, Corecursive c, Traversable (Base c), Traversable (Base t), Recursive t) | |
=> (Base t (Cofree (Base t) a) -> m a) | algebra |
-> (a -> m (Base c a)) | coalgebra |
-> t | |
-> m c |
codynamorphism on combination variant of histo to ana
:: (Monad m, Traversable t) | |
=> (t b -> m b) | algebra |
-> (a -> m (t (Free t a))) | coalgebra |
-> a | |
-> m b |
codynamorphism on recursive variant over hylomorphism
Refolding
:: (Monad m, Traversable t) | |
=> (t b -> m b) | algebra |
-> (a -> m (t a)) | coalgebra |
-> a | |
-> m b |
hylomorphism on recursive variant
:: (Monad m, Traversable (Base t), Recursive s, Corecursive t, Base s ~ Base t) | |
=> (Base t t -> m t) | algebra |
-> (s -> m (Base s s)) | coalgebra |
-> s | |
-> m t |
metamorphism on recursive variant
:: 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 |
hylomorphism on combination variant of ana to cata
:: (Monad m, Corecursive c, Traversable (Base c), Traversable (Base t), Recursive t) | |
=> (Base t a -> m a) | algebra |
-> (a -> m (Base c a)) | coalgebra |
-> t | |
-> m c |
metamorphism on combination variant of cata to ana
:: 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 |
chronomorphism on combination variant of futu to hist
:: (Monad m, Corecursive c, Traversable (Base c), Traversable (Base t), Recursive t) | |
=> (Base t (Cofree (Base t) a) -> m a) | algebra |
-> (a -> m (Base c (Free (Base c) a))) | coalgebra |
-> t | |
-> m c |
cochronomorphism on combination variant of histo to futu
:: (Monad m, Traversable t) | |
=> (t (Cofree t b) -> m b) | algebra |
-> (a -> m (t (Free t a))) | coalgebra |
-> a | |
-> m b |
chronomorphism on recursive variant over hylomorphism
Generalized Folding
:: (Monad m, Comonad w, Traversable w, Traversable (Base t), Recursive t, b ~ w a) | |
=> (Base t (w b) -> m (w (Base t b))) | Distributive (Base t) w b |
-> (Base t (w a) -> m a) | algebra |
-> t | |
-> m a |
generalized catamorphism
:: (Monad m, Comonad w, Traversable w, Traversable (Base t), Recursive t, b ~ w a) | |
=> (Base t (w b) -> m (w (Base t b))) | Distributive (Base t) w b |
-> (Base t (w a) -> m a) | algebra |
-> t | |
-> m a |
generalized catamorphism variant
Others
:: (Monad m, Traversable (Base t), Recursive t) | |
=> (Base t (a, b) -> m b) | algebra |
-> (Base t (a, b) -> m a) | algebra |
-> t | |
-> m b |
mutumorphism on mutual recursive
:: (Monad m, Traversable (Base t), Corecursive t) | |
=> (b -> m (Base t (Either a b))) | coalgebra |
-> (a -> m (Base t (Either a b))) | coalgebra |
-> b | |
-> m t |
comutumorphism on comutual recursive
:: (Monad m, Traversable (Base t), Recursive t) | |
=> (a -> b) | project |
-> (Base t a -> m a) | algebra |
-> t | |
-> m b |
mutumorphism on recursive variant over catamorphism
:: (Monad m, Traversable (Base t), Corecursive t) | |
=> (b -> a) | embed |
-> (a -> m (Base t a)) | coalgebra |
-> b | |
-> m t |
comutumorphism on recursive variant over anamorphism
:: (Monad m, Corecursive (f a), Traversable (Base (f a)), Traversable f, Recursive (f a)) | |
=> (a -> m a) | pre-operator |
-> f a | |
-> m (f a) |
cascade (a.k.a supermap)
:: (Monad m, Corecursive (f a), Traversable (Base (f a)), Traversable f, Recursive (f a)) | |
=> (a -> m a) | post-operator |
-> f a | |
-> m (f a) |
iterate