Copyright | (C) 2024 Eitan Chatav |
---|---|
License | BSD 3-Clause License (see the file LICENSE) |
Maintainer | Eitan Chatav <eitan.chatav@gmail.com> |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
The writer indexed monad transformer.
Documentation
newtype WriterIx w i j m x Source #
WriterIx | |
|
Instances
Category w => IxMonadTrans (WriterIx w :: k -> k -> (Type -> Type) -> Type -> Type) Source # | |
Defined in Control.Monad.Trans.Indexed.Writer 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 # | |
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 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 :: 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 #