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

Portabilityportable
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Monad.Ideal

Contents

Description

 

Synopsis

Ideal Monads

class Functor m => MonadIdeal m whereSource

Methods

idealize :: m (Either a (m a)) -> m aSource

ideal :: Either a (f a) -> Ideal f aSource

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

Coideal Comonads

class Functor w => ComonadCoideal w whereSource

Methods

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

coideal :: (a, f a) -> Coideal f aSource

Mutual recursion for (co)ideal (co)monad (co)products

newtype Mutual p m n a Source

Constructors

Mutual 

Fields

runMutual :: m (p a (Mutual p n m a))
 

Instances

Coideal Comonad Product

type :* m n = Mutual' (,) m nSource

Ideal Monad Coproduct

type :+ m n = Mutual' Either m nSource