Portability | portable |
---|---|

Stability | experimental |

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

- class Functor m => MonadIdeal m where
- type Ideal = Ap Either
- ideal :: Either a (f a) -> Ideal f a
- destroyIdeal :: Algebra m a -> Ideal m a -> a
- class Functor w => ComonadCoideal w where
- coidealize :: w a -> w (a, w a)

- type Coideal = Ap (,)
- coideal :: (a, f a) -> Coideal f a
- buildCoideal :: Coalgebra m a -> a -> Coideal m a
- newtype Mutual p m n a = Mutual {}
- type :* m n = Mutual' (,) m n
- type :+ m n = Mutual' Either m n

# Ideal Monads

destroyIdeal :: Algebra m a -> Ideal m a -> aSource

# Coideal Comonads

class Functor w => ComonadCoideal w whereSource

coidealize :: w a -> w (a, w a)Source

buildCoideal :: Coalgebra m a -> a -> Coideal m aSource