hs-ix-0.1.0.0: Indexed monads

Safe HaskellNone
LanguageHaskell2010

Data.Functor.Indexed

Documentation

class (forall i j. Functor (p i j)) => IxApplicative p where Source #

Methods

ipure :: a -> p k k a Source #

iap :: p i j (a -> b) -> p j k a -> p i k b Source #

Instances
IxApplicative (ContT f :: k -> k -> Type -> Type) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.Cont

Methods

ipure :: a -> ContT f k0 k0 a Source #

iap :: ContT f i j (a -> b) -> ContT f j k0 a -> ContT f i k0 b Source #

Applicative p => IxApplicative (IxWrap p :: k -> k -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Indexed

Methods

ipure :: a -> IxWrap p k0 k0 a Source #

iap :: IxWrap p i j (a -> b) -> IxWrap p j k0 a -> IxWrap p i k0 b Source #

Monad m => IxApplicative (StateT m :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

ipure :: a -> StateT m k k a Source #

iap :: StateT m i j (a -> b) -> StateT m j k a -> StateT m i k b Source #

class IxApplicative m => IxMonad m where Source #

Minimal complete definition

Nothing

Methods

ijoin :: m i j (m j k a) -> m i k a Source #

ibind :: (a -> m j k b) -> m i j a -> m i k b Source #

Instances
IxMonad (ContT f :: k -> k -> Type -> Type) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.Cont

Methods

ijoin :: ContT f i j (ContT f j k0 a) -> ContT f i k0 a Source #

ibind :: (a -> ContT f j k0 b) -> ContT f i j a -> ContT f i k0 b Source #

Monad m => IxMonad (IxWrap m :: k -> k -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Indexed

Methods

ijoin :: IxWrap m i j (IxWrap m j k0 a) -> IxWrap m i k0 a Source #

ibind :: (a -> IxWrap m j k0 b) -> IxWrap m i j a -> IxWrap m i k0 b Source #

Monad m => IxMonad (StateT m :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

ijoin :: StateT m i j (StateT m j k a) -> StateT m i k a Source #

ibind :: (a -> StateT m j k b) -> StateT m i j a -> StateT m i k b Source #

iapIxMonad :: IxMonad m => m i j (a -> b) -> m j k a -> m i k b Source #

class (forall i j. Functor (ɯ i j)) => IxComonad ɯ where Source #

Minimal complete definition

Nothing

Methods

icut :: ɯ i k a -> ɯ i j (ɯ j k a) Source #

icobind :: (ɯ j k a -> b) -> ɯ i k a -> ɯ i j b Source #

Instances
Comonad ɯ => IxComonad (IxWrap ɯ :: k -> k -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Indexed

Methods

icut :: IxWrap ɯ i k0 a -> IxWrap ɯ i j (IxWrap ɯ j k0 a) Source #

icobind :: (IxWrap ɯ j k0 a -> b) -> IxWrap ɯ i k0 a -> IxWrap ɯ i j b Source #

newtype IxWrap f i j a Source #

Constructors

IxWrap 

Fields

Instances
Comonad ɯ => IxComonad (IxWrap ɯ :: k -> k -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Indexed

Methods

icut :: IxWrap ɯ i k0 a -> IxWrap ɯ i j (IxWrap ɯ j k0 a) Source #

icobind :: (IxWrap ɯ j k0 a -> b) -> IxWrap ɯ i k0 a -> IxWrap ɯ i j b Source #

Monad m => IxMonad (IxWrap m :: k -> k -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Indexed

Methods

ijoin :: IxWrap m i j (IxWrap m j k0 a) -> IxWrap m i k0 a Source #

ibind :: (a -> IxWrap m j k0 b) -> IxWrap m i j a -> IxWrap m i k0 b Source #

Applicative p => IxApplicative (IxWrap p :: k -> k -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Indexed

Methods

ipure :: a -> IxWrap p k0 k0 a Source #

iap :: IxWrap p i j (a -> b) -> IxWrap p j k0 a -> IxWrap p i k0 b Source #

Functor f => Functor (IxWrap f i j) Source # 
Instance details

Defined in Data.Functor.Indexed

Methods

fmap :: (a -> b) -> IxWrap f i j a -> IxWrap f i j b #

(<$) :: a -> IxWrap f i j b -> IxWrap f i j a #