Module

Matryoshka

Re-exports from Matryoshka.Algebra

#GAlgebraM

type GAlgebraM w m f a = f (w a) -> m a

#GAlgebra

type GAlgebra w f a = f (w a) -> a

#ElgotAlgebra

type ElgotAlgebra w f a = w (f a) -> a

#AlgebraM

type AlgebraM m f a = f a -> m a

#Algebra

type Algebra f a = f a -> a

Re-exports from Matryoshka.Class.Corecursive

#Corecursive

class (Functor f) <= Corecursive t f | t -> f where

Members

Instances

Re-exports from Matryoshka.Class.Recursive

#Recursive

class (Functor f) <= Recursive t f | t -> f where

Members

Instances

Re-exports from Matryoshka.Coalgebra

#GCoalgebraM

type GCoalgebraM n m f a = a -> m (f (n a))

#GCoalgebra

type GCoalgebra n f a = a -> f (n a)

#ElgotCoalgebra

type ElgotCoalgebra e f a = a -> e (f a)

#CoalgebraM

type CoalgebraM m f a = a -> m (f a)

#Coalgebra

type Coalgebra f a = a -> f a

Re-exports from Matryoshka.DistributiveLaw

#DistributiveLaw

type DistributiveLaw f g = forall a. f (g a) -> g (f a)

#distZygoT

distZygoT :: forall f w a. Functor f => Comonad w => Algebra f a -> DistributiveLaw f w -> DistributiveLaw f (EnvT a w)

#distZygo

distZygo :: forall f a. Functor f => Algebra f a -> DistributiveLaw f (Tuple a)

#distParaT

distParaT :: forall t f w. Corecursive t f => Comonad w => DistributiveLaw f w -> DistributiveLaw f (EnvT t w)

#distPara

distPara :: forall t f. Corecursive t f => DistributiveLaw f (Tuple t)

#distHisto

distHisto :: forall f. Functor f => DistributiveLaw f (Cofree f)

#distGHisto

distGHisto :: forall f h. Functor f => Functor h => DistributiveLaw f h -> DistributiveLaw f (Cofree h)

#distGFutu

distGFutu :: forall f h. Functor f => Functor h => DistributiveLaw h f -> DistributiveLaw (Free h) f

#distGApoT

distGApoT :: forall f m a. Functor f => Functor m => Coalgebra f a -> DistributiveLaw m f -> DistributiveLaw (ExceptT a m) f

#distGApo

distGApo :: forall f a. Functor f => Coalgebra f a -> DistributiveLaw (Either a) f

#distFutu

distFutu :: forall f. Functor f => DistributiveLaw (Free f) f

#distDistributive

#distCata

#distApplicative

#distApo

distApo :: forall t f. Recursive t f => DistributiveLaw (Either t) f

#distAna

Re-exports from Matryoshka.Fold

#zygo

zygo :: forall t f a b. Recursive t f => Algebra f b -> GAlgebra (Tuple b) f a -> t -> a

#universe

universe :: forall t f. Recursive t f => Foldable f => t -> List t

#transPrepro

transPrepro :: forall t f u g. Recursive t f => Corecursive t f => Corecursive u g => (f ~> f) -> Transform u f g -> t -> u

#transParaT

transParaT :: forall t f. Recursive t f => Corecursive t f => (t -> t -> t) -> t -> t

#transPara

transPara :: forall t f u g. Recursive t f => Corecursive u g => AlgebraicGTransform (Tuple t) u f g -> t -> u

#transCataTM

transCataTM :: forall t f m. Recursive t f => Corecursive t f => Monad m => Traversable f => (t -> m t) -> t -> m t

#transCataT

transCataT :: forall t f. Recursive t f => Corecursive t f => (t -> t) -> t -> t

#transCataM

transCataM :: forall t f u g m. Recursive t f => Corecursive u g => Monad m => Traversable f => TransformM m u f g -> t -> m u

#transCata

transCata :: forall t f u g. Recursive t f => Corecursive u g => Transform u f g -> t -> u

#topDownCataM

topDownCataM :: forall t f m a. Recursive t f => Corecursive t f => Monad m => Traversable f => (a -> t -> m (Tuple a t)) -> a -> t -> m t

#topDownCata

topDownCata :: forall t f a. Recursive t f => Corecursive t f => (a -> t -> Tuple a t) -> a -> t -> t

#prepro

prepro :: forall t f a. Recursive t f => Corecursive t f => (f ~> f) -> Algebra f a -> t -> a

#paraM

paraM :: forall t f m a. Recursive t f => Monad m => Traversable f => GAlgebraM (Tuple t) m f a -> t -> m a

#para

para :: forall t f a. Recursive t f => GAlgebra (Tuple t) f a -> t -> a

#mutu

mutu :: forall t f a b. Recursive t f => GAlgebra (Tuple a) f b -> GAlgebra (Tuple b) f a -> t -> a

#lambek

lambek :: forall t f. Recursive t f => Corecursive t f => t -> f t

#isLeaf

isLeaf :: forall t f. Recursive t f => Foldable f => t -> Boolean

#histo

histo :: forall t f a. Recursive t f => GAlgebra (Cofree f) f a -> t -> a

#gzygo

gzygo :: forall t f w a b. Recursive t f => Comonad w => Algebra f b -> DistributiveLaw f w -> GAlgebra (EnvT b w) f a -> t -> a

#gprepro

gprepro :: forall t f w a. Recursive t f => Corecursive t f => Comonad w => DistributiveLaw f w -> (f ~> f) -> GAlgebra w f a -> t -> a

#gpara

gpara :: forall t f w a. Recursive t f => Corecursive t f => Comonad w => DistributiveLaw f w -> GAlgebra (EnvT t w) f a -> t -> a

#ghisto

ghisto :: forall t f h a. Recursive t f => Functor h => DistributiveLaw f h -> GAlgebra (Cofree h) f a -> t -> a

#gcataM

gcataM :: forall t f w m a. Recursive t f => Monad m => Comonad w => Traversable f => Traversable w => DistributiveLaw f w -> GAlgebraM w m f a -> t -> m a

#gcata

gcata :: forall t f w a. Recursive t f => Comonad w => DistributiveLaw f w -> GAlgebra w f a -> t -> a

#gElgotZygo

gElgotZygo :: forall t f w a b. Recursive t f => Comonad w => Algebra f b -> DistributiveLaw f w -> ElgotAlgebra (EnvT b w) f a -> t -> a

#elgotZygo

elgotZygo :: forall t f a b. Recursive t f => Algebra f b -> ElgotAlgebra (Tuple b) f a -> t -> a

#elgotPara

elgotPara :: forall t f a. Recursive t f => ElgotAlgebra (Tuple t) f a -> t -> a

#elgotHisto

elgotHisto :: forall t f a. Recursive t f => ElgotAlgebra (Cofree f) f a -> t -> a

#elgotCata

elgotCata :: forall t f w a. Recursive t f => Comonad w => DistributiveLaw f w -> ElgotAlgebra w f a -> t -> a

#children

children :: forall t f. Recursive t f => Foldable f => t -> List t

#cataM

cataM :: forall t f m a. Recursive t f => Monad m => Traversable f => AlgebraM m f a -> t -> m a

#cata

cata :: forall t f a. Recursive t f => Algebra f a -> t -> a

#annotateTopDownM

annotateTopDownM :: forall t f m a. Recursive t f => Monad m => Traversable f => (a -> f t -> m a) -> a -> t -> m (Cofree f a)

#annotateTopDown

annotateTopDown :: forall t f a. Recursive t f => (a -> f t -> a) -> a -> t -> Cofree f a

Re-exports from Matryoshka.Refold

#transHylo

transHylo :: forall t f g h u. Recursive t f => Corecursive u h => Functor g => Transform u g h -> Transform t f g -> t -> u

#hyloM

hyloM :: forall f m a b. Monad m => Traversable f => AlgebraM m f b -> CoalgebraM m f a -> a -> m b

#hylo

hylo :: forall f a b. Functor f => Algebra f b -> Coalgebra f a -> a -> b

#ghyloM

ghyloM :: forall f w n m a b. Monad m => Monad n => Comonad w => Traversable f => Traversable w => Traversable n => DistributiveLaw f w -> DistributiveLaw n f -> GAlgebraM w m f b -> GCoalgebraM n m f a -> a -> m b

#ghylo

ghylo :: forall f w n a b. Monad n => Comonad w => Functor f => DistributiveLaw f w -> DistributiveLaw n f -> GAlgebra w f b -> GCoalgebra n f a -> a -> b

#dyna

dyna :: forall f a b. Functor f => GAlgebra (Cofree f) f b -> Coalgebra f a -> a -> b

#convertTo

convertTo :: forall t f r. Recursive t f => Corecursive r f => t -> r

#codynaM

codynaM :: forall f m a b. Monad m => Traversable f => AlgebraM m f b -> GCoalgebraM (Free f) m f a -> a -> m b

#codyna

codyna :: forall f a b. Functor f => Algebra f b -> GCoalgebra (Free f) f a -> a -> b

#chrono

chrono :: forall f a b. Functor f => GAlgebra (Cofree f) f b -> GCoalgebra (Free f) f a -> a -> b

Re-exports from Matryoshka.Transform

#TransformM

type TransformM m t f g = f t -> m (g t)

#Transform

type Transform t f g = f t -> g t

#CoalgebraicGTransform

type CoalgebraicGTransform n t f g = f t -> g (n t)

#AlgebraicGTransform

type AlgebraicGTransform w t f g = f (w t) -> g t

Re-exports from Matryoshka.Unfold

#transPostpro

transPostpro :: forall t f u g. Recursive t f => Recursive u g => Corecursive u g => (g ~> g) -> Transform t f g -> t -> u

#transApoT

transApoT :: forall t f. Recursive t f => Corecursive t f => (t -> Either t t) -> t -> t

#transApo

transApo :: forall t f u g. Recursive t f => Corecursive u g => CoalgebraicGTransform (Either u) t f g -> t -> u

#transAnaTM

transAnaTM :: forall t f m. Recursive t f => Corecursive t f => Monad m => Traversable f => Coalgebra m t -> t -> m t

#transAnaT

transAnaT :: forall t f. Recursive t f => Corecursive t f => (t -> t) -> t -> t

#transAnaM

transAnaM :: forall t f u g m. Recursive t f => Corecursive u g => Monad m => Traversable g => TransformM m t f g -> t -> m u

#transAna

transAna :: forall t f u g. Recursive t f => Corecursive u g => Transform t f g -> t -> u

#postpro

postpro :: forall t f a. Recursive t f => Corecursive t f => (f ~> f) -> Coalgebra f a -> a -> t

#gpostpro

gpostpro :: forall t f n a. Recursive t f => Corecursive t f => Monad n => DistributiveLaw n f -> (f ~> f) -> GCoalgebra n f a -> a -> t

#gapo

gapo :: forall t f a b. Corecursive t f => Coalgebra f b -> GCoalgebra (Either b) f a -> a -> t

#ganaM

ganaM :: forall t f m n a. Corecursive t f => Monad m => Monad n => Traversable f => Traversable n => DistributiveLaw n f -> GCoalgebraM n m f a -> a -> m t

#gana

gana :: forall t f n a. Corecursive t f => Monad n => DistributiveLaw n f -> GCoalgebra n f a -> a -> t

#futuM

futuM :: forall t f m a. Corecursive t f => Monad m => Traversable f => GCoalgebraM (Free f) m f a -> a -> m t

#futu

futu :: forall t f a. Corecursive t f => GCoalgebra (Free f) f a -> a -> t

#elgotFutu

elgotFutu :: forall t f a. Corecursive t f => ElgotCoalgebra (Free f) f a -> a -> t

#elgotApo

elgotApo :: forall t f a. Corecursive t f => ElgotCoalgebra (Either t) f a -> a -> t

#elgotAna

elgotAna :: forall t f n a. Corecursive t f => Monad n => DistributiveLaw n f -> ElgotCoalgebra n f a -> a -> t

#colambek

colambek :: forall t f. Recursive t f => Corecursive t f => f t -> t

#apoM

apoM :: forall t f m a. Corecursive t f => Monad m => Traversable f => GCoalgebraM (Either t) m f a -> a -> m t

#apo

apo :: forall t f a. Corecursive t f => GCoalgebra (Either t) f a -> a -> t

#anaM

anaM :: forall t f m a. Corecursive t f => Monad m => Traversable f => CoalgebraM m f a -> a -> m t

#ana

ana :: forall t f a. Corecursive t f => Coalgebra f a -> a -> t

Re-exports from Matryoshka.Util

#traverseR

traverseR :: forall t f u g m. Recursive t f => Corecursive u g => Functor m => (f t -> m (g u)) -> t -> m u

#mapR

mapR :: forall t f u g. Recursive t f => Corecursive u g => (f t -> g u) -> t -> u

Modules