boop-0.1.0.0: OOP primitives for Haskell

Safe HaskellSafe
LanguageHaskell2010

Control.OOP.MonadVar

Synopsis

Documentation

class Monad m => MonadConstVar v m | m -> v where Source #

Generalized read-only access to mutable variables

Minimal complete definition

readVar

Methods

readVar :: v a -> m a Source #

Instances

MonadIO m => MonadConstVar IORef m Source # 

Methods

readVar :: IORef a -> m a Source #

class (Monad m, MonadConstVar v m) => MonadVar v m | m -> v where Source #

Generalized mutable variables

Minimal complete definition

newVar, writeVar, transaction

Methods

newVar :: a -> m (v a) Source #

writeVar :: a -> v a -> m () Source #

modifyVar :: (a -> a) -> v a -> m () Source #

swapVar :: a -> v a -> m a Source #

modifySwapVar :: (a -> a) -> v a -> m a Source #

transaction :: Proxy v -> m a -> m a Source #

Instances

MonadIO m => MonadVar IORef m Source # 

Methods

newVar :: a -> m (IORef a) Source #

writeVar :: a -> IORef a -> m () Source #

modifyVar :: (a -> a) -> IORef a -> m () Source #

swapVar :: a -> IORef a -> m a Source #

modifySwapVar :: (a -> a) -> IORef a -> m a Source #

transaction :: Proxy (* -> *) IORef -> m a -> m a Source #