| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Monad.Trans.Ix
Documentation
newtype Ix (m :: Type -> Type) i j a Source #
The free indexed monad generated from a monad m. Users are not expected
to use Ix directly, but to newtype over it, specializing the kinds of i
and j as necessary.
GeneralizedNewtypeDeriving can be used to get the instances of IxFunctor,
IxPointed, IxApplicative, IxMonad, IxMonadZero and IxMonadPlus for
free.
Instances
| Functor m => IxFunctor (Ix m :: k -> k1 -> Type -> *) Source # | |
Defined in Control.Monad.Trans.Ix | |
| Monad m => IxMonad (Ix m :: k -> k -> Type -> *) Source # | |
| MonadPlus m => IxMonadZero (Ix m :: k -> k -> Type -> *) Source # | |
Defined in Control.Monad.Trans.Ix | |
| MonadPlus m => IxMonadPlus (Ix m :: k -> k -> Type -> *) Source # | |
| Applicative m => IxApplicative (Ix m :: k -> k -> Type -> *) Source # | |
| Applicative m => IxPointed (Ix m :: k -> k -> Type -> *) Source # | |
Defined in Control.Monad.Trans.Ix | |
| Monad m => Monad (Ix m i j) Source # | |
| Functor m => Functor (Ix m i j) Source # | |
| Applicative m => Applicative (Ix m i j) Source # | |
unsafeLiftIx :: m a -> Ix m i j a Source #
Lift an m action into 'Ix m', changing the current index. unsafeLiftIx
is obviously unsafe due to the fact that it can arbitrarily change the
index.