Module
Matryoshka
- Package
- purescript-matryoshka
- Repository
- purescript-contrib/purescript-matryoshka
Re-exports from Matryoshka.Algebra
#ElgotAlgebra Source
type ElgotAlgebra :: (Type -> Type) -> (Type -> Type) -> Type -> Type
type ElgotAlgebra w f a = w (f a) -> a
Re-exports from Matryoshka.Class.Corecursive
#Corecursive Source
class Corecursive :: Type -> (Type -> Type) -> Constraint
class (Functor f) <= Corecursive t f | t -> f where
Members
embed :: f t -> t
Instances
(Functor f) => Corecursive (Mu f) f
(Functor f) => Corecursive (Nu f) f
(Functor f) => Corecursive (Free f a) (CoEnvT a f)
(Functor f) => Corecursive (Cofree f a) (EnvT a f)
Re-exports from Matryoshka.Class.Recursive
#Recursive Source
Re-exports from Matryoshka.Coalgebra
#GCoalgebraM Source
type GCoalgebraM :: (Type -> Type) -> (Type -> Type) -> (Type -> Type) -> Type -> Type
type GCoalgebraM n m f a = a -> m (f (n a))
#GCoalgebra Source
type GCoalgebra :: (Type -> Type) -> (Type -> Type) -> Type -> Type
type GCoalgebra n f a = a -> f (n a)
#ElgotCoalgebra Source
type ElgotCoalgebra :: (Type -> Type) -> (Type -> Type) -> Type -> Type
type ElgotCoalgebra e f a = a -> e (f a)
#CoalgebraM Source
type CoalgebraM :: (Type -> Type) -> (Type -> Type) -> Type -> Type
type CoalgebraM m f a = a -> m (f a)
Re-exports from Matryoshka.DistributiveLaw
#DistributiveLaw Source
type DistributiveLaw :: (Type -> Type) -> (Type -> Type) -> Type
type 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)
#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)
#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
#distDistributive Source
distDistributive :: forall f g. Traversable f => Distributive g => DistributiveLaw f g
#distApplicative Source
distApplicative :: forall f g. Traversable f => Applicative g => DistributiveLaw f g
Re-exports from Matryoshka.Fold
#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
#lambek Source
lambek :: forall t f. Recursive t f => Corecursive t f => t -> f t
#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
#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
#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
#cataM Source
cataM :: forall t f m a. Recursive t f => Monad m => Traversable f => AlgebraM m f a -> t -> m 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
#hyloM Source
hyloM :: forall f m a b. Monad m => Traversable f => AlgebraM m f b -> CoalgebraM m f a -> a -> m 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
#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
Re-exports from Matryoshka.Transform
#TransformM Source
type TransformM :: (Type -> Type) -> Type -> (Type -> Type) -> (Type -> Type) -> Type
type TransformM m t f g = f t -> m (g t)
#CoalgebraicGTransform Source
type CoalgebraicGTransform :: (Type -> Type) -> Type -> (Type -> Type) -> (Type -> Type) -> Type
type CoalgebraicGTransform n t f g = f t -> g (n t)
#AlgebraicGTransform Source
type AlgebraicGTransform :: (Type -> Type) -> Type -> (Type -> Type) -> (Type -> Type) -> Type
type 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