stateref-0.3: Abstraction for things that work like IORef.
Safe HaskellSafe-Inferred
LanguageHaskell98

Data.MRef.Instances

Description

This module exports no new symbols of its own. It defines basic class instances for creating, reading, and writing MVars, and re-exports MVar.

Documentation

data MVar a #

Instances

Instances details
Eq (MVar a) 
Instance details

Defined in GHC.Internal.MVar

Methods

(==) :: MVar a -> MVar a -> Bool

(/=) :: MVar a -> MVar a -> Bool

MonadIO m => NewMRef (MVar a) m a Source # 
Instance details

Defined in Data.MRef.Instances

Methods

newMReference :: a -> m (MVar a) Source #

newEmptyMReference :: m (MVar a) Source #

MonadIO m => PutMRef (MVar a) m a Source # 
Instance details

Defined in Data.MRef.Instances

Methods

putMReference :: MVar a -> a -> m () Source #

MonadIO m => TakeMRef (MVar a) m a Source # 
Instance details

Defined in Data.MRef.Instances

Methods

takeMReference :: MVar a -> m a Source #

MonadIO m => NewRef (MVar a) m (Maybe a) Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

newReference :: Maybe a -> m (MVar a) Source #

class Monad m => MonadIO (m :: Type -> Type) where #

Methods

liftIO :: IO a -> m a #

Instances

Instances details
MonadIO IO 
Instance details

Defined in Control.Monad.IO.Class

Methods

liftIO :: IO a -> IO a #

data STM a #

Instances

Instances details
Alternative STM 
Instance details

Defined in GHC.Internal.Conc.Sync

Methods

empty :: STM a

(<|>) :: STM a -> STM a -> STM a

some :: STM a -> STM [a]

many :: STM a -> STM [a]

Applicative STM 
Instance details

Defined in GHC.Internal.Conc.Sync

Methods

pure :: a -> STM a

(<*>) :: STM (a -> b) -> STM a -> STM b

liftA2 :: (a -> b -> c) -> STM a -> STM b -> STM c

(*>) :: STM a -> STM b -> STM b

(<*) :: STM a -> STM b -> STM a

Functor STM 
Instance details

Defined in GHC.Internal.Conc.Sync

Methods

fmap :: (a -> b) -> STM a -> STM b

(<$) :: a -> STM b -> STM a

Monad STM 
Instance details

Defined in GHC.Internal.Conc.Sync

Methods

(>>=) :: STM a -> (a -> STM b) -> STM b

(>>) :: STM a -> STM b -> STM b

return :: a -> STM a

MonadPlus STM 
Instance details

Defined in GHC.Internal.Conc.Sync

Methods

mzero :: STM a

mplus :: STM a -> STM a -> STM a

MonadFix STM 
Instance details

Defined in Control.Monad.STM

Methods

mfix :: (a -> STM a) -> STM a

HasMRef STM Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

newMRef :: a -> STM (MRef STM a) Source #

newEmptyMRef :: STM (MRef STM a) Source #

HasRef STM Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

newRef :: a -> STM (Ref STM a) Source #

MArray TArray e STM 
Instance details

Defined in Control.Concurrent.STM.TArray

Methods

getBounds :: Ix i => TArray i e -> STM (i, i)

getNumElements :: Ix i => TArray i e -> STM Int

newArray :: Ix i => (i, i) -> e -> STM (TArray i e)

newArray_ :: Ix i => (i, i) -> STM (TArray i e)

unsafeNewArray_ :: Ix i => (i, i) -> STM (TArray i e)

unsafeRead :: Ix i => TArray i e -> Int -> STM e

unsafeWrite :: Ix i => TArray i e -> Int -> e -> STM ()

Monoid a => Monoid (STM a) 
Instance details

Defined in GHC.Internal.Conc.Sync

Methods

mempty :: STM a

mappend :: STM a -> STM a -> STM a

mconcat :: [STM a] -> STM a

Semigroup a => Semigroup (STM a) 
Instance details

Defined in GHC.Internal.Conc.Sync

Methods

(<>) :: STM a -> STM a -> STM a

sconcat :: NonEmpty (STM a) -> STM a

stimes :: Integral b => b -> STM a -> STM a

NewMRef (TVar (Maybe a)) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

newMReference :: a -> STM (TVar (Maybe a)) Source #

newEmptyMReference :: STM (TVar (Maybe a)) Source #

NewMRef (TMVar a) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

PutMRef (TVar (Maybe a)) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

putMReference :: TVar (Maybe a) -> a -> STM () Source #

PutMRef (TMVar a) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

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

TakeMRef (TVar (Maybe a)) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: TVar (Maybe a) -> STM a Source #

TakeMRef (TMVar a) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: TMVar a -> STM a Source #

ModifyRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

atomicModifyReference :: TVar a -> (a -> (a, b)) -> STM b Source #

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

NewRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

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

ReadRef (STM a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: STM a -> STM a Source #

MonadIO m => ReadRef (STM a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: STM a -> m a Source #

ReadRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: TVar a -> STM a Source #

WriteRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

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

NewRef (TMVar a) STM (Maybe a) Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

newReference :: Maybe a -> STM (TMVar a) Source #

ReadRef (TMVar a) STM (Maybe a) Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: TMVar a -> STM (Maybe a) Source #

NewMRef (MRef STM a) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

newMReference :: a -> IO (MRef STM a) Source #

newEmptyMReference :: IO (MRef STM a) Source #

PutMRef (MRef STM a) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

putMReference :: MRef STM a -> a -> IO () Source #

TakeMRef (MRef STM a) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: MRef STM a -> IO a Source #

MonadIO m => ModifyRef (Ref STM a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

atomicModifyReference :: Ref STM a -> (a -> (a, b)) -> m b Source #

modifyReference :: Ref STM a -> (a -> a) -> m () Source #

MonadIO m => NewRef (Ref STM a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

newReference :: a -> m (Ref STM a) Source #

MonadIO m => ReadRef (Ref STM a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: Ref STM a -> m a Source #

MonadIO m => WriteRef (Ref STM a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

writeReference :: Ref STM a -> a -> m () Source #

data TVar a #

Instances

Instances details
Eq (TVar a) 
Instance details

Defined in GHC.Internal.Conc.Sync

Methods

(==) :: TVar a -> TVar a -> Bool

(/=) :: TVar a -> TVar a -> Bool

NewMRef (TVar (Maybe a)) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

newMReference :: a -> STM (TVar (Maybe a)) Source #

newEmptyMReference :: STM (TVar (Maybe a)) Source #

NewMRef (TVar (Maybe a)) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

newMReference :: a -> IO (TVar (Maybe a)) Source #

newEmptyMReference :: IO (TVar (Maybe a)) Source #

PutMRef (TVar (Maybe a)) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

putMReference :: TVar (Maybe a) -> a -> STM () Source #

PutMRef (TVar (Maybe a)) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

putMReference :: TVar (Maybe a) -> a -> IO () Source #

TakeMRef (TVar (Maybe a)) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: TVar (Maybe a) -> STM a Source #

TakeMRef (TVar (Maybe a)) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: TVar (Maybe a) -> IO a Source #

ModifyRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

atomicModifyReference :: TVar a -> (a -> (a, b)) -> STM b Source #

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

MonadIO m => ModifyRef (TVar a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

atomicModifyReference :: TVar a -> (a -> (a, b)) -> m b Source #

modifyReference :: TVar a -> (a -> a) -> m () Source #

NewRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

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

MonadIO m => NewRef (TVar a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

newReference :: a -> m (TVar a) Source #

ReadRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: TVar a -> STM a Source #

MonadIO m => ReadRef (TVar a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: TVar a -> m a Source #

WriteRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

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

MonadIO m => WriteRef (TVar a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

writeReference :: TVar a -> a -> m () Source #

data TMVar a #

Instances

Instances details
Eq (TMVar a) 
Instance details

Defined in Control.Concurrent.STM.TMVar

Methods

(==) :: TMVar a -> TMVar a -> Bool

(/=) :: TMVar a -> TMVar a -> Bool

NewMRef (TMVar a) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

NewMRef (TMVar a) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

newMReference :: a -> IO (TMVar a) Source #

newEmptyMReference :: IO (TMVar a) Source #

PutMRef (TMVar a) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

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

PutMRef (TMVar a) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

putMReference :: TMVar a -> a -> IO () Source #

TakeMRef (TMVar a) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: TMVar a -> STM a Source #

TakeMRef (TMVar a) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: TMVar a -> IO a Source #

NewRef (TMVar a) STM (Maybe a) Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

newReference :: Maybe a -> STM (TMVar a) Source #

MonadIO m => NewRef (TMVar a) m (Maybe a) Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

newReference :: Maybe a -> m (TMVar a) Source #

ReadRef (TMVar a) STM (Maybe a) Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: TMVar a -> STM (Maybe a) Source #

MonadIO m => ReadRef (TMVar a) m (Maybe a) Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: TMVar a -> m (Maybe a) Source #

atomically :: STM a -> IO a #

Orphan instances

HasMRef IO Source # 
Instance details

Methods

newMRef :: a -> IO (MRef IO a) Source #

newEmptyMRef :: IO (MRef IO a) Source #

MonadIO m => NewMRef (MVar a) m a Source # 
Instance details

Methods

newMReference :: a -> m (MVar a) Source #

newEmptyMReference :: m (MVar a) Source #

MonadIO m => PutMRef (MVar a) m a Source # 
Instance details

Methods

putMReference :: MVar a -> a -> m () Source #

MonadIO m => TakeMRef (MVar a) m a Source # 
Instance details

Methods

takeMReference :: MVar a -> m a Source #