Portability | non-portable (rank-2 polymorphism) |
---|---|

Stability | experimental |

Maintainer | Edward Kmett <ekmett@gmail.com> |

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

- apo :: Functor f => CoAlgM f (Apo f) a -> a -> Fix f
- g_apo :: Functor f => CoAlg f b -> CoAlgM f (GApo b) a -> a -> Fix f
- type Apo f a = Either (Fix f) a
- type ApoT f m a = EitherT (Fix f) m a
- type GApo b a = Either b a
- type GApoT b m a = EitherT b m a
- distGApo :: Functor f => CoAlg f b -> Dist (Either b) f
- distGApoT :: (Functor f, Monad m) => CoAlgM f m b -> Dist m f -> Dist (EitherT b m) f
- distApoT :: (Functor f, Monad m) => Dist m f -> Dist (ApoT f m) f