| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Monad.Trans.State.Ref
Description
An implementation of StateT built on top of mutable references,
providing a proper monad morphism.
Please see the documentation at https://www.stackage.org/package/monad-unlift for more details on using this module.
Synopsis
- data StateRefT ref s m a
- runStateRefT :: (Monad m, s ~ RefElement (ref s), MCState (ref s) ~ PrimState b, MonadBase b m, MutableRef (ref s), PrimMonad b) => StateRefT ref s m a -> s -> m (a, s)
- runStateIORefT :: (Monad m, RealWorld ~ PrimState b, MonadBase b m, PrimMonad b) => StateRefT IORef s m a -> s -> m (a, s)
- runStateSTRefT :: (Monad m, ps ~ PrimState b, MonadBase b m, PrimMonad b) => StateRefT (STRef ps) s m a -> s -> m (a, s)
- module Control.Monad.State.Class
Documentation
Since: 0.1.0
Instances
runStateRefT :: (Monad m, s ~ RefElement (ref s), MCState (ref s) ~ PrimState b, MonadBase b m, MutableRef (ref s), PrimMonad b) => StateRefT ref s m a -> s -> m (a, s) #
Since: 0.1.0
runStateIORefT :: (Monad m, RealWorld ~ PrimState b, MonadBase b m, PrimMonad b) => StateRefT IORef s m a -> s -> m (a, s) #
Since: 0.1.0
runStateSTRefT :: (Monad m, ps ~ PrimState b, MonadBase b m, PrimMonad b) => StateRefT (STRef ps) s m a -> s -> m (a, s) #
Since: 0.1.0
module Control.Monad.State.Class