Module

Matryoshka

Package
purescript-matryoshka
Repository
slamdata/purescript-matryoshka

Re-exports from Matryoshka.Algebra

#GAlgebraM Source

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

#GAlgebra Source

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

#ElgotAlgebra Source

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

#AlgebraM Source

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

#Algebra Source

type Algebra f a = f a -> a

Re-exports from Matryoshka.Class.Corecursive

#Corecursive Source

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

Members

Instances

Re-exports from Matryoshka.Class.Recursive

#Recursive Source

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

Members

Instances

Re-exports from Matryoshka.Coalgebra

#GCoalgebraM Source

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

#GCoalgebra Source

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

#ElgotCoalgebra Source

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

#CoalgebraM Source

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

#Coalgebra Source

type Coalgebra f a = a -> f a

Re-exports from Matryoshka.DistributiveLaw

#DistributiveLaw Source

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

#distZygoT Source

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

#distZygo Source

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

#distParaT Source

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

#distPara Source

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

#distHisto Source

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

#distGHisto Source

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

#distGFutu Source

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

#distGApoT Source

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

#distGApo Source

distGApo :: forall a f. 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 f t. Recursive t f => DistributiveLaw (Either t) f

#distAna Source

Re-exports from Matryoshka.Fold

#zygo Source

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

#universe Source

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

#transPrepro Source

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

#transParaT Source

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

#transPara Source

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

#transCataTM Source

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

#transCataT Source

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

#transCataM Source

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

#transCata Source

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

#topDownCataM Source

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

#topDownCata Source

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

#prepro Source

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

#paraM Source

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

#para Source

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

#mutu Source

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

#lambek Source

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

#isLeaf Source

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

#histo Source

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

#gzygo Source

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

#gprepro Source

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

#gpara Source

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

#ghisto Source

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

#gcataM Source

gcataM :: forall a m w f t. 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 a w f t. Recursive t f => Comonad w => DistributiveLaw f w -> GAlgebra w f a -> t -> a

#gElgotZygo Source

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

#elgotZygo Source

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

#elgotPara Source

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

#elgotHisto Source

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

#elgotCata Source

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

#children Source

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

#cataM Source

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

#cata Source

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

#annotateTopDownM Source

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

#annotateTopDown Source

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

Re-exports from Matryoshka.Refold

#transHylo Source

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

#hyloM Source

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

#hylo Source

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

#ghyloM Source

ghyloM :: forall b a m n w f. 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 b a n w f. 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 b a f. Functor f => GAlgebra (Cofree f) f b -> Coalgebra f a -> a -> b

#convertTo Source

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

#codynaM Source

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

#codyna Source

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

#chrono Source

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

Re-exports from Matryoshka.Transform

#TransformM Source

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

#Transform Source

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

#CoalgebraicGTransform Source

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

#AlgebraicGTransform Source

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

Re-exports from Matryoshka.Unfold

#transPostpro Source

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

#transApoT Source

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

#transApo Source

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

#transAnaTM Source

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

#transAnaT Source

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

#transAnaM Source

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

#transAna Source

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

#postpro Source

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

#gpostpro Source

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

#gapo Source

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

#ganaM Source

ganaM :: forall a n m f t. 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 a n f t. Corecursive t f => Monad n => DistributiveLaw n f -> GCoalgebra n f a -> a -> t

#futuM Source

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

#futu Source

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

#elgotFutu Source

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

#elgotApo Source

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

#elgotAna Source

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

#colambek Source

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

#apoM Source

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

#apo Source

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

#anaM Source

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

#ana Source

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

Re-exports from Matryoshka.Util

#traverseR Source

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

#mapR Source

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