monad-unlift-0.1.1.0: Typeclasses for representing monad transformer unlifting

Safe HaskellNone
LanguageHaskell2010

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

Documentation

data StateRefT ref s m a Source

Since 0.1.0

Instances

((~) * (MCState (ref s)) (PrimState b), Monad m, (~) * s (RefElement (ref s)), MutableRef (ref s), PrimMonad b, MonadBase b m) => MonadState s (StateRefT ref s m) 
MonadBase b m => MonadBase b (StateRefT ref s m) 
MonadBaseControl b m => MonadBaseControl b (StateRefT ref s m) 
MonadTrans (StateRefT ref s) 
MonadTransControl (StateRefT ref s) 
Monad m => Monad (StateRefT ref s m) 
Functor m => Functor (StateRefT ref s m) 
Applicative m => Applicative (StateRefT ref s m) 
MonadThrow m => MonadThrow (StateRefT ref s m) 
MonadCatch m => MonadCatch (StateRefT ref s m) 
MonadMask m => MonadMask (StateRefT ref s m) 
MonadIO m => MonadIO (StateRefT ref s m) 
MonadResource m => MonadResource (StateRefT ref s m) 
type StT (StateRefT ref s) a = a 
type StM (StateRefT ref s m) a = StM 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) Source

Since 0.1.0

runStateIORefT :: (Monad m, RealWorld ~ PrimState b, MonadBase b m, PrimMonad b) => StateRefT IORef s m a -> s -> m (a, s) Source

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) Source

Since 0.1.0