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

Stability | experimental |

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

Since in Hask, Mu = Nu, we don't bother to distinguish them here

- newtype FixF f = InF {}
- outM :: (Functor f, Monad m) => GCoalgebra f m (FixF f)
- inW :: (Functor f, Comonad w) => GAlgebra f w (FixF f)
- newtype Fix s a = InB {}
- paugment :: PMonad f => (forall c. (f a c -> c) -> c) -> (a -> Fix f b) -> Fix f b
- pcoaugment :: PComonad f => ((Fix f a -> f b (Fix f a)) -> Fix f b) -> (Fix f a -> b) -> Fix f b

# Functor fixpoint

# Bifunctor fixpoint

(Bifunctor f Hask Hask Hask, PMonad f) => Monad (Fix f) | |

Bifunctor s Hask Hask Hask => Functor (Fix s) | |

(Bifunctor f Hask Hask Hask, PCopointed f) => Copointed (Fix f) | |

(Bifunctor f Hask Hask Hask, PPointed f) => Pointed (Fix f) | |

(Bifunctor f Hask Hask Hask, PComonad f) => Comonad (Fix f) | |

Bizip p => Zip (Fix p) |