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.Cont
Description
The continuation indexed monad transformer.
Documentation
newtype ContIx (i :: k) (j :: k) (m :: k -> Type) x Source #
Instances
IxMonadTrans (ContIx :: Type -> Type -> (Type -> Type) -> Type -> Type) Source # | |
Defined in Control.Monad.Trans.Indexed.Cont Methods apIx :: forall (m :: Type -> Type) i j x y k1. Monad m => ContIx i j m (x -> y) -> ContIx j k1 m x -> ContIx i k1 m y Source # joinIx :: forall (m :: Type -> Type) i j k1 y. Monad m => ContIx i j m (ContIx j k1 m y) -> ContIx i k1 m y Source # bindIx :: forall (m :: Type -> Type) x j k1 y i. Monad m => (x -> ContIx j k1 m y) -> ContIx i j m x -> ContIx i k1 m y Source # thenIx :: forall (m :: Type -> Type) j k1 y i x. Monad m => ContIx j k1 m y -> ContIx i j m x -> ContIx i k1 m y Source # andThenIx :: forall (m :: Type -> Type) y j k1 z x i. Monad m => (y -> ContIx j k1 m z) -> (x -> ContIx i j m y) -> x -> ContIx i k1 m z Source # | |
i ~ j => MonadTrans (ContIx i j) Source # | |
Defined in Control.Monad.Trans.Indexed.Cont | |
i ~ j => Applicative (ContIx i j m) Source # | |
Defined in Control.Monad.Trans.Indexed.Cont | |
Functor (ContIx i j m) Source # | |
i ~ j => Monad (ContIx i j m) Source # | |
i ~ j => MonadCont (ContIx i j m) Source # | |
callCCIx :: forall {k1} x (j :: k1) (k2 :: k1) (m :: k1 -> Type) y (i :: k1). ((x -> ContIx j k2 m y) -> ContIx i j m x) -> ContIx i j m x Source #
evalContIx :: Monad m => ContIx x j m j -> m x Source #
mapContIx :: forall {k1} m (i :: k1) (j :: k1) (k2 :: k1) x. (m i -> m j) -> ContIx i k2 m x -> ContIx j k2 m x Source #
withContIx :: forall {k1} y m (k2 :: k1) x (j :: k1) (i :: k1). ((y -> m k2) -> x -> m j) -> ContIx i j m x -> ContIx i k2 m y Source #