Copyright | (C) 2024 Eitan Chatav |
---|---|
License | BSD 3-Clause License (see the file LICENSE) |
Maintainer | Eitan Chatav <[email protected]> |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Control.Monad.Trans.Indexed.Writer
Description
The writer indexed monad transformer.
Documentation
newtype WriterIx (w :: k -> k1 -> Type) (i :: k) (j :: k1) (m :: Type -> Type) x Source #
Constructors
WriterIx | |
Fields
|
Instances
Category w => IxMonadTrans (WriterIx w :: k -> k -> (Type -> Type) -> Type -> Type) Source # | |
Defined in Control.Monad.Trans.Indexed.Writer Methods apIx :: forall (m :: Type -> Type) (i :: k) (j :: k) x y (k1 :: k). 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 :: k) (j :: k) (k1 :: k) 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 :: k) (k1 :: k) y (i :: k). 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 :: k) (k1 :: k) y (i :: k) 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 :: k) (k1 :: k) z x (i :: k). 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 # | |
Defined in Control.Monad.Trans.Indexed.Writer | |
(i ~ j, Applicative m, Category w) => Applicative (WriterIx w i j m) Source # | |
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 # | |
(i ~ j, Monad m, Category w) => Monad (WriterIx w i j m) Source # | |
evalWriterIx :: forall {k1} {k2} m (w :: k1 -> k2 -> Type) (i :: k1) (j :: k2) x. Monad m => WriterIx w i j m x -> m x Source #
execWriterIx :: forall {k1} {k2} m w (i :: k1) (j :: k2) x. Monad m => WriterIx w i j m x -> m (w i j) Source #
mapWriterIx :: forall {k1} {k2} m x w (i :: k1) (j :: k2) n y q. (m (x, w i j) -> n (y, q i j)) -> WriterIx w i j m x -> WriterIx q i j n y Source #
tellIx :: forall {k1} {k2} (m :: Type -> Type) w (i :: k1) (j :: k2). Monad m => w i j -> WriterIx w i j m () Source #
listenIx :: forall {k1} {k2} (m :: Type -> Type) w (i :: k1) (j :: k2) x. Monad m => WriterIx w i j m x -> WriterIx w i j m (x, w i j) Source #
listensIx :: forall {k1} {k2} (m :: Type -> Type) w (i :: k1) (j :: k2) y x. Monad m => (w i j -> y) -> WriterIx w i j m x -> WriterIx w i j m (x, y) Source #