Safe Haskell | None |
---|---|
Language | Haskell2010 |
Extra utilities and abstractions for Control.Monad.Primitive.
The API structure is stable, but the naming is not very good and may change. Ideally we would push this upstream into Control.Monad.Primitive itself.
Synopsis
- newtype PrimST m s = PrimST {
- statePrimST :: forall a. (s -> (a, s)) -> m a
- readPrimST :: PrimST m s -> m s
- writePrimST :: PrimST m s -> s -> m ()
- modifyPrimST :: PrimST m s -> (s -> s) -> m ()
- stMutVar :: PrimMonad m => MutVar (PrimState m) s -> PrimST m s
- class Monad m => PrimMonad (m :: Type -> Type) where
Documentation
Type abstracting a mutable reference.
This can be thought of as a mutable version of a Lens' (PrimState m) s
with the lens functor specialised to (,) a
for each a
.
PrimST | |
|
readPrimST :: PrimST m s -> m s Source #
writePrimST :: PrimST m s -> s -> m () Source #
modifyPrimST :: PrimST m s -> (s -> s) -> m () Source #
class Monad m => PrimMonad (m :: Type -> Type) #
Class of monads which can perform primitive state-transformer actions
Instances
PrimMonad IO | |
PrimMonad (ST s) | |
PrimMonad m => PrimMonad (MaybeT m) | |
PrimMonad m => PrimMonad (ListT m) | |
PrimMonad m => PrimMonad (IdentityT m) | |
PrimMonad m => PrimMonad (ExceptT e m) | |
(Error e, PrimMonad m) => PrimMonad (ErrorT e m) | |
PrimMonad m => PrimMonad (StateT s m) | |
PrimMonad m => PrimMonad (StateT s m) | |
(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) | |
(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) | |
(Monoid w, PrimMonad m) => PrimMonad (AccumT w m) | Since: primitive-0.6.3.0 |
PrimMonad m => PrimMonad (SelectT r m) | |
PrimMonad m => PrimMonad (ContT r m) | Since: primitive-0.6.3.0 |
PrimMonad m => PrimMonad (ReaderT r m) | |
(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) | |
(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) | |