variables-0.1.1: Monads with variables, without deep magic

Safe HaskellNone

Control.Monad.Variables

Description

Monads with variables.

Synopsis

Documentation

data Variable m a Source

The type of variables. In contrast with other monads-with-variables packages, this is not done using type families.

Constructors

Variable 

Fields

readVar :: m a
 
writeVar :: a -> m ()
 

class Monad m => MonadVar m whereSource

Monads which have general variables.

Methods

newVar :: a -> m (Variable m a)Source

Create a variable from an initial value.

Instances

MonadVar IO 
MonadVar STM 
MonadVar (ST s) 
MonadVar m => MonadVar (ContT r m) 
(MonadVar m, Error e) => MonadVar (ErrorT e m) 
MonadVar m => MonadVar (ReaderT r m) 
MonadVar m => MonadVar (StateT s m) 
MonadVar m => MonadVar (StateT s m) 
(MonadVar m, Monoid w) => MonadVar (WriterT w m) 
(MonadVar m, Monoid w) => MonadVar (WriterT w m) 
(MonadVar m, Monoid w) => MonadVar (RWST r w s m) 
(MonadVar m, Monoid w) => MonadVar (RWST r w s m) 

stateVar :: MonadState s m => Variable m sSource

Access a variable representing the state of a state monad.