indexed-transformers-0.1.0.4: Atkey indexed monad transformers
Copyright(C) 2024 Eitan Chatav
LicenseBSD 3-Clause License (see the file LICENSE)
MaintainerEitan Chatav <eitan.chatav@gmail.com>
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Trans.Indexed.Writer

Description

The writer indexed monad transformer.

Documentation

newtype WriterIx w i j m x Source #

Constructors

WriterIx 

Fields

Instances

Instances details
Category w => IxMonadTrans (WriterIx w :: k -> k -> (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Control.Monad.Trans.Indexed.Writer

Methods

apIx :: forall (m :: Type -> Type) (i :: k0) (j :: k0) x y (k1 :: k0). Monad m => WriterIx w i j m (x -> y) -> WriterIx w j k1 m x -> WriterIx w i k1 m y Source #

joinIx :: forall (m :: Type -> Type) (i :: k0) (j :: k0) (k1 :: k0) y. Monad m => WriterIx w i j m (WriterIx w j k1 m y) -> WriterIx w i k1 m y Source #

bindIx :: forall (m :: Type -> Type) x (j :: k0) (k1 :: k0) y (i :: k0). Monad m => (x -> WriterIx w j k1 m y) -> WriterIx w i j m x -> WriterIx w i k1 m y Source #

thenIx :: forall (m :: Type -> Type) (j :: k0) (k1 :: k0) y (i :: k0) x. Monad m => WriterIx w j k1 m y -> WriterIx w i j m x -> WriterIx w i k1 m y Source #

andThenIx :: forall (m :: Type -> Type) y (j :: k0) (k1 :: k0) z x (i :: k0). Monad m => (y -> WriterIx w j k1 m z) -> (x -> WriterIx w i j m y) -> x -> WriterIx w i k1 m z Source #

(i ~ j, Category w) => MonadTrans (WriterIx w i j) Source # 
Instance details

Defined in Control.Monad.Trans.Indexed.Writer

Methods

lift :: Monad m => m a -> WriterIx w i j m a #

(i ~ j, Applicative m, Category w) => Applicative (WriterIx w i j m) Source # 
Instance details

Defined in Control.Monad.Trans.Indexed.Writer

Methods

pure :: a -> WriterIx w i j m a #

(<*>) :: WriterIx w i j m (a -> b) -> WriterIx w i j m a -> WriterIx w i j m b #

liftA2 :: (a -> b -> c) -> WriterIx w i j m a -> WriterIx w i j m b -> WriterIx w i j m c #

(*>) :: WriterIx w i j m a -> WriterIx w i j m b -> WriterIx w i j m b #

(<*) :: WriterIx w i j m a -> WriterIx w i j m b -> WriterIx w i j m a #

Functor m => Functor (WriterIx w i j m) Source # 
Instance details

Defined in Control.Monad.Trans.Indexed.Writer

Methods

fmap :: (a -> b) -> WriterIx w i j m a -> WriterIx w i j m b #

(<$) :: a -> WriterIx w i j m b -> WriterIx w i j m a #

(i ~ j, Monad m, Category w) => Monad (WriterIx w i j m) Source # 
Instance details

Defined in Control.Monad.Trans.Indexed.Writer

Methods

(>>=) :: WriterIx w i j m a -> (a -> WriterIx w i j m b) -> WriterIx w i j m b #

(>>) :: WriterIx w i j m a -> WriterIx w i j m b -> WriterIx w i j m b #

return :: a -> WriterIx w i j m a #

evalWriterIx :: Monad m => WriterIx w i j m x -> m x Source #

execWriterIx :: Monad m => WriterIx w i j m x -> m (w i j) Source #

mapWriterIx :: (m (x, w i j) -> n (y, q i j)) -> WriterIx w i j m x -> WriterIx q i j n y Source #

tellIx :: Monad m => w i j -> WriterIx w i j m () Source #

listenIx :: Monad m => WriterIx w i j m x -> WriterIx w i j m (x, w i j) Source #

listensIx :: Monad m => (w i j -> y) -> WriterIx w i j m x -> WriterIx w i j m (x, y) Source #

passIx :: Monad m => WriterIx w i j m (x, w i j -> q i j) -> WriterIx q i j m x Source #

censorIx :: Monad m => (w i j -> w i j) -> WriterIx w i j m x -> WriterIx w i j m x Source #