ix-0.1.1.0: Indexed monads

Safe HaskellSafe
LanguageHaskell2010

Control.Categorical.Monad.Indexed

Documentation

class (forall i j. Endofunctor s (m i j)) => Monad s m where Source #

Minimal complete definition

unit

Methods

unit :: a `s` m k k a Source #

join :: m i j (m j k a) `s` m i k a Source #

bind :: (a `s` m j k b) -> m i j a `s` m i k b Source #

Instances
Comonad s f => Monad (Dual s :: k2 -> k2 -> Type) (f :: k1 -> k1 -> k2 -> k2) Source # 
Instance details

Defined in Control.Categorical.Monad.Indexed

Methods

unit :: Dual s a (f k k a) Source #

join :: Dual s (f i j (f j k a)) (f i k a) Source #

bind :: Dual s a (f j k b) -> Dual s (f i j a) (f i k b) Source #

(Category s, Comonad (NT s :: (k1 -> k2) -> (k1 -> k2) -> Type) f) => Monad (NT (Dual s) :: (k1 -> k2) -> (k1 -> k2) -> Type) (f :: k -> k -> (k1 -> k2) -> k1 -> k2) Source # 
Instance details

Defined in Control.Categorical.Monad.Indexed

Methods

unit :: NT (Dual s) a (f k0 k0 a) Source #

join :: NT (Dual s) (f i j (f j k0 a)) (f i k0 a) Source #

bind :: NT (Dual s) a (f j k0 b) -> NT (Dual s) (f i j a) (f i k0 b) Source #

(<=<) :: Monad s m => (b `s` m j k c) -> (a `s` m i j b) -> a `s` m i k c infixr 1 Source #

(>=>) :: Monad s m => (a `s` m i j b) -> (b `s` m j k c) -> a `s` m i k c infixr 1 Source #

class (forall i j. Endofunctor s (ɯ i j)) => Comonad s ɯ where Source #

Minimal complete definition

counit

Methods

counit :: ɯ k k a `s` a Source #

cut :: ɯ i k a `s` ɯ i j (ɯ j k a) Source #

cobind :: (ɯ j k a `s` b) -> ɯ i k a `s` ɯ i j b Source #

(=<=) :: Comonad s ɯ => (ɯ i j b `s` c) -> (ɯ j k a `s` b) -> ɯ i k a `s` c infixr 1 Source #

(=>=) :: Comonad s ɯ => (ɯ j k a `s` b) -> (ɯ i j b `s` c) -> ɯ i k a `s` c infixr 1 Source #