Safe Haskell | None |
---|---|
Language | Haskell2010 |
Control.Monad.Primitive.Extra
Description
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
.
Constructors
PrimST | |
Fields
|
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
Minimal complete definition
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) | |