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.Futu

Description

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

Synopsis

Documentation

futu :: RunMonadFree f m => GCoalgebra f m a -> a -> FixF fSource

Generalized from futu :: Functor f => GCoalgebra f (Free f) a -> a -> FixF f

g_futu :: (Functor f, RunMonadFree h m) => Dist h f -> GCoalgebra f m a -> a -> FixF fSource

postpro_futu :: RunMonadFree f m => GCoalgebra f m a -> (f :~> f) -> a -> FixF fSource

A futumorphic postpromorphism

g_postpro_futu :: (Functor f, RunMonadFree h m) => Dist h f -> GCoalgebra f m a -> (f :~> f) -> a -> FixF fSource

A generalized-futumorphic postpromorphism

distFutu :: (Functor f, RunMonadFree h m) => Dist h f -> Dist m fSource

Turn a distributive law for a functor into a distributive law for the free monad of that functor. This has been generalized to support generating distributive laws for a number of related free-monad-like constructions such as the Codensity monad of the free monad of a functor.