category-extras-0.53.3: Various modules and constructs inspired by category theory

Portabilitynon-portable (rank-2 polymorphism)
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Morphism.Apo

Description

Traditional operators, shown here to show how to roll your own

Documentation

apo :: Functor f => GCoalgebra f (Apo f) a -> a -> FixF fSource

g_apo :: Functor f => Coalgebra f b -> GCoalgebra f (GApo b) a -> a -> FixF fSource

postpro_apo :: Functor f => GCoalgebra f (Apo f) a -> (f :~> f) -> a -> FixF fSource

g_postpro_apo :: Functor f => Coalgebra f b -> GCoalgebra f (GApo b) a -> (f :~> f) -> a -> FixF fSource

type Apo f a = Either (FixF f) aSource

type ApoT f m a = EitherT (FixF f) m aSource

distApoT :: (Functor f, Monad m) => Dist m f -> Dist (ApoT f m) fSource

type GApo b a = Either b aSource

type GApoT b m a = EitherT b m aSource

distGApoT :: (Functor f, Monad m) => GCoalgebra f m b -> Dist m f -> Dist (EitherT b m) fSource