var-monad-0.1.0.1: The @VarMonad@ typeclass generalizes types of references.

Safe HaskellSafe
LanguageHaskell2010

Control.Monad.Var.Class

Documentation

class Monad m => VarMonad m v where Source #

Minimal complete definition

new, get, put

Methods

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

get :: v a -> m a Source #

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

Instances

VarMonad IO IORef Source # 

Methods

new :: a -> IO (IORef a) Source #

get :: IORef a -> IO a Source #

put :: IORef a -> a -> IO () Source #

VarMonad IO MVar Source # 

Methods

new :: a -> IO (MVar a) Source #

get :: MVar a -> IO a Source #

put :: MVar a -> a -> IO () Source #

VarMonad STM TVar Source # 

Methods

new :: a -> STM (TVar a) Source #

get :: TVar a -> STM a Source #

put :: TVar a -> a -> STM () Source #

VarMonad STM TMVar Source # 

Methods

new :: a -> STM (TMVar a) Source #

get :: TMVar a -> STM a Source #

put :: TMVar a -> a -> STM () Source #

VarMonad (ST s) (STRef s) Source # 

Methods

new :: a -> ST s (STRef s a) Source #

get :: STRef s a -> ST s a Source #

put :: STRef s a -> a -> ST s () Source #