Module

Matryoshka

Package
purescript-matryoshka
Repository
purescript-contrib/purescript-matryoshka

Re-exports from Matryoshka.Algebra

#GAlgebraM Source

type GAlgebraM :: (Type -> Type) -> (Type -> Type) -> (Type -> Type) -> Type -> Typetype GAlgebraM w m f a = f (w a) -> m a

#GAlgebra Source

type GAlgebra :: (Type -> Type) -> (Type -> Type) -> Type -> Typetype GAlgebra w f a = f (w a) -> a

#ElgotAlgebra Source

type ElgotAlgebra :: (Type -> Type) -> (Type -> Type) -> Type -> Typetype ElgotAlgebra w f a = w (f a) -> a

#AlgebraM Source

type AlgebraM :: (Type -> Type) -> (Type -> Type) -> Type -> Typetype AlgebraM m f a = f a -> m a

#Algebra Source

type Algebra :: (Type -> Type) -> Type -> Typetype Algebra f a = f a -> a

Re-exports from Matryoshka.Class.Corecursive

#Corecursive Source

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

Members

Instances

Re-exports from Matryoshka.Class.Recursive

#Recursive Source

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

Members

Instances

Re-exports from Matryoshka.Coalgebra

#GCoalgebraM Source

type GCoalgebraM :: (Type -> Type) -> (Type -> Type) -> (Type -> Type) -> Type -> Typetype GCoalgebraM n m f a = a -> m (f (n a))

#GCoalgebra Source

type GCoalgebra :: (Type -> Type) -> (Type -> Type) -> Type -> Typetype GCoalgebra n f a = a -> f (n a)

#ElgotCoalgebra Source

type ElgotCoalgebra :: (Type -> Type) -> (Type -> Type) -> Type -> Typetype ElgotCoalgebra e f a = a -> e (f a)

#CoalgebraM Source

type CoalgebraM :: (Type -> Type) -> (Type -> Type) -> Type -> Typetype CoalgebraM m f a = a -> m (f a)

#Coalgebra Source

type Coalgebra :: (Type -> Type) -> Type -> Typetype Coalgebra f a = a -> f a

Re-exports from Matryoshka.DistributiveLaw

#DistributiveLaw Source

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

#distZygoT Source

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

#distZygo Source

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

#distParaT Source

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

#distPara Source

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

#distHisto Source

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

#distGHisto Source

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

#distGFutu Source

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

#distGApoT Source

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

#distGApo Source

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

#distFutu Source

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

#distDistributive Source

#distCata Source

#distApplicative Source

#distApo Source

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

#distAna Source

Re-exports from Matryoshka.Fold

#zygo Source

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

#universe Source

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

#transPrepro Source

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

#transParaT Source

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

#transPara Source

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

#transCataTM Source

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

#transCataT Source

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

#transCataM Source

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 Source

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

#topDownCataM Source

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 Source

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

#prepro Source

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

#paraM Source

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

#para Source

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

#mutu Source

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

#lambek Source

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

#isLeaf Source

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

#histo Source

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

#gzygo Source

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 Source

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 Source

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 Source

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

#gcataM Source

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 Source

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

#gElgotZygo Source

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 Source

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

#elgotPara Source

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

#elgotHisto Source

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

#elgotCata Source

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

#children Source

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

#cataM Source

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

#cata Source

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

#annotateTopDownM Source

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 Source

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

Re-exports from Matryoshka.Refold

#transHylo Source

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 Source

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

#hylo Source

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

#ghyloM Source

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 Source

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 Source

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

#convertTo Source

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

#codynaM Source

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

#codyna Source

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

#chrono Source

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 Source

type TransformM :: (Type -> Type) -> Type -> (Type -> Type) -> (Type -> Type) -> Typetype TransformM m t f g = f t -> m (g t)

#Transform Source

type Transform :: Type -> (Type -> Type) -> (Type -> Type) -> Typetype Transform t f g = f t -> g t

#CoalgebraicGTransform Source

type CoalgebraicGTransform :: (Type -> Type) -> Type -> (Type -> Type) -> (Type -> Type) -> Typetype CoalgebraicGTransform n t f g = f t -> g (n t)

#AlgebraicGTransform Source

type AlgebraicGTransform :: (Type -> Type) -> Type -> (Type -> Type) -> (Type -> Type) -> Typetype AlgebraicGTransform w t f g = f (w t) -> g t

Re-exports from Matryoshka.Unfold

#transPostpro Source

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

#transApoT Source

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

#transApo Source

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

#transAnaTM Source

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

#transAnaT Source

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

#transAnaM Source

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 Source

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

#postpro Source

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

#gpostpro Source

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 Source

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

#ganaM Source

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 Source

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

#futuM Source

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

#futu Source

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

#elgotFutu Source

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

#elgotApo Source

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

#elgotAna Source

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

#colambek Source

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

#apoM Source

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

#apo Source

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

#anaM Source

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

#ana Source

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

Re-exports from Matryoshka.Util

#traverseR Source

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

#mapR Source

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