Safe Haskell | None |
---|---|
Language | Haskell2010 |
Extra utilities and abstractions for Control.Monad.Primitive.
The API structure is stable, but the naming is not great 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) | |