Module

Matryoshka.Transform

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

#Transform Source

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

#TransformM Source

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

#AlgebraicGTransform Source

type AlgebraicGTransform :: (Type -> Type) -> Type -> (Type -> Type) -> (Type -> Type) -> Typetype AlgebraicGTransform w t f g = f (w 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)