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

Data.StateRef.Instances

Description

This module exports no new symbols of its own. It defines several basic class instances for creating, reading, and writing standard reference types, and re-exports the types for which it defines instances.

TODO: add millions of SPECIALIZE INSTANCE pragmas, for IO monad at a minimum.

Synopsis

Documentation

data IORef a #

Instances

Instances details
Eq (IORef a) 
Instance details

Defined in GHC.IORef

Methods

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

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

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

Defined in Data.StateRef.Instances

Methods

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

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

Defined in Data.StateRef.Instances

Methods

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

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

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

Defined in Data.StateRef.Instances

Methods

readReference :: IORef a -> m a Source #

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

Defined in Data.StateRef.Instances

Methods

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

data MVar a #

Instances

Instances details
Eq (MVar a) 
Instance details

Defined in GHC.MVar

Methods

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

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

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 => 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 => 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 STRef s a #

Instances

Instances details
Eq (STRef s a) 
Instance details

Defined in GHC.STRef

Methods

(==) :: STRef s a -> STRef s a -> Bool

(/=) :: STRef s a -> STRef s a -> Bool

NewRef (STRef RealWorld a) IO a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

newReference :: a -> IO (STRef RealWorld a) Source #

ModifyRef (STRef RealWorld a) IO a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

atomicModifyReference :: STRef RealWorld a -> (a -> (a, b)) -> IO b Source #

modifyReference :: STRef RealWorld a -> (a -> a) -> IO () Source #

ReadRef (STRef RealWorld a) IO a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

readReference :: STRef RealWorld a -> IO a Source #

WriteRef (STRef RealWorld a) IO a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

writeReference :: STRef RealWorld a -> a -> IO () Source #

NewRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

NewRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

ModifyRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

atomicModifyReference :: STRef s a -> (a -> (a, b)) -> ST s b Source #

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

ModifyRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

atomicModifyReference :: STRef s a -> (a -> (a, b)) -> ST s b Source #

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

ReadRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

ReadRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

WriteRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

WriteRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

data ST s a #

Instances

Instances details
Monad (ST s) 
Instance details

Defined in GHC.ST

Methods

(>>=) :: ST s a -> (a -> ST s b) -> ST s b

(>>) :: ST s a -> ST s b -> ST s b

return :: a -> ST s a

Functor (ST s) 
Instance details

Defined in GHC.ST

Methods

fmap :: (a -> b) -> ST s a -> ST s b

(<$) :: a -> ST s b -> ST s a

MonadFail (ST s) 
Instance details

Defined in GHC.ST

Methods

fail :: String -> ST s a

Applicative (ST s) 
Instance details

Defined in GHC.ST

Methods

pure :: a -> ST s a

(<*>) :: ST s (a -> b) -> ST s a -> ST s b

liftA2 :: (a -> b -> c) -> ST s a -> ST s b -> ST s c

(*>) :: ST s a -> ST s b -> ST s b

(<*) :: ST s a -> ST s b -> ST s a

HasRef (ST s) Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

newRef :: a -> ST s (Ref (ST s) a) Source #

Show (ST s a) 
Instance details

Defined in GHC.ST

Methods

showsPrec :: Int -> ST s a -> ShowS

show :: ST s a -> String

showList :: [ST s a] -> ShowS

Semigroup a => Semigroup (ST s a) 
Instance details

Defined in GHC.ST

Methods

(<>) :: ST s a -> ST s a -> ST s a

sconcat :: NonEmpty (ST s a) -> ST s a

stimes :: Integral b => b -> ST s a -> ST s a

Monoid a => Monoid (ST s a) 
Instance details

Defined in GHC.ST

Methods

mempty :: ST s a

mappend :: ST s a -> ST s a -> ST s a

mconcat :: [ST s a] -> ST s a

Monad m => NewRef (ST s a) m a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

newReference :: a -> m (ST s a) Source #

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

Defined in Data.StateRef.Instances

Methods

readReference :: ST RealWorld a -> m a Source #

NewRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

ModifyRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

atomicModifyReference :: STRef s a -> (a -> (a, b)) -> ST s b Source #

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

ReadRef (ST s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

readReference :: ST s a -> ST s a Source #

ReadRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

WriteRef (STRef s a) (ST s) a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

data RealWorld #

Instances

Instances details
NewRef (STRef RealWorld a) IO a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

newReference :: a -> IO (STRef RealWorld a) Source #

ModifyRef (STRef RealWorld a) IO a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

atomicModifyReference :: STRef RealWorld a -> (a -> (a, b)) -> IO b Source #

modifyReference :: STRef RealWorld a -> (a -> a) -> IO () Source #

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

Defined in Data.StateRef.Instances

Methods

readReference :: ST RealWorld a -> m a Source #

ReadRef (STRef RealWorld a) IO a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

readReference :: STRef RealWorld a -> IO a Source #

WriteRef (STRef RealWorld a) IO a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

writeReference :: STRef RealWorld a -> a -> IO () Source #

data ForeignPtr a #

Instances

Instances details
Eq (ForeignPtr a) 
Instance details

Defined in GHC.ForeignPtr

Methods

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

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

Ord (ForeignPtr a) 
Instance details

Defined in GHC.ForeignPtr

Methods

compare :: ForeignPtr a -> ForeignPtr a -> Ordering

(<) :: ForeignPtr a -> ForeignPtr a -> Bool

(<=) :: ForeignPtr a -> ForeignPtr a -> Bool

(>) :: ForeignPtr a -> ForeignPtr a -> Bool

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

max :: ForeignPtr a -> ForeignPtr a -> ForeignPtr a

min :: ForeignPtr a -> ForeignPtr a -> ForeignPtr a

Show (ForeignPtr a) 
Instance details

Defined in GHC.ForeignPtr

Methods

showsPrec :: Int -> ForeignPtr a -> ShowS

show :: ForeignPtr a -> String

showList :: [ForeignPtr a] -> ShowS

(Storable a, MonadIO m) => NewRef (ForeignPtr a) m a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

(Storable a, MonadIO m) => ModifyRef (ForeignPtr a) m a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

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

(Storable a, MonadIO m) => ReadRef (ForeignPtr a) m a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

readReference :: ForeignPtr a -> m a Source #

(Storable a, MonadIO m) => WriteRef (ForeignPtr a) m a Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

data STM a #

Instances

Instances details
Monad STM 
Instance details

Defined in GHC.Conc.Sync

Methods

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

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

return :: a -> STM a

Functor STM 
Instance details

Defined in GHC.Conc.Sync

Methods

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

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

Applicative STM 
Instance details

Defined in GHC.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

Alternative STM 
Instance details

Defined in GHC.Conc.Sync

Methods

empty :: STM a

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

some :: STM a -> STM [a]

many :: STM a -> STM [a]

MonadPlus STM 
Instance details

Defined in GHC.Conc.Sync

Methods

mzero :: STM a

mplus :: STM 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 ()

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 #

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

NewRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

newReference :: a -> STM (TVar 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 => ReadRef (STM a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: STM a -> m a Source #

ReadRef (STM a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: STM a -> STM 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 #

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 #

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 #

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 => 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 => 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.Conc.Sync

Methods

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

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

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

Defined in Data.MRef.Instances.STM

Methods

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

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

Defined in Data.MRef.Instances.STM

Methods

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

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

Defined in Data.MRef.Instances.STM

Methods

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

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

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: TVar (Maybe a) -> STM 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 #

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 #

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

Defined in Data.StateRef.Instances.STM

Methods

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

NewRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

newReference :: a -> STM (TVar a) 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 #

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 => ReadRef (TVar a) m a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: TVar 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 #

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

Defined in Data.StateRef.Instances.STM

Methods

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

WriteRef (TVar a) STM a Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

writeReference :: TVar a -> a -> STM () 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

PutMRef (TMVar a) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

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

PutMRef (TMVar a) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

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

TakeMRef (TMVar a) IO a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: TMVar a -> IO a Source #

TakeMRef (TMVar a) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

Methods

takeMReference :: TMVar a -> STM a Source #

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 #

NewMRef (TMVar a) STM a Source # 
Instance details

Defined in Data.MRef.Instances.STM

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 #

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 => ReadRef (TMVar a) m (Maybe a) Source # 
Instance details

Defined in Data.StateRef.Instances.STM

Methods

readReference :: TMVar a -> m (Maybe 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 #

atomically :: STM a -> IO a #

newtype UnsafeModifyRef sr Source #

Wrap a state reference that supports reading and writing, and add a potentially thread-unsafe ModifyRef instance.

Constructors

UnsafeModifyRef sr 

Instances

Instances details
(Monad m, ReadRef sr m a, WriteRef sr m a) => ModifyRef (UnsafeModifyRef sr) m a Source # 
Instance details

Defined in Data.StateRef.Instances.Undecidable

Methods

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

modifyReference :: UnsafeModifyRef sr -> (a -> a) -> m () Source #

ReadRef sr m a => ReadRef (UnsafeModifyRef sr) m a Source # 
Instance details

Defined in Data.StateRef.Instances.Undecidable

WriteRef sr m a => WriteRef (UnsafeModifyRef sr) m a Source # 
Instance details

Defined in Data.StateRef.Instances.Undecidable

Methods

writeReference :: UnsafeModifyRef sr -> a -> m () Source #

Orphan instances

HasRef IO Source # 
Instance details

Methods

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

HasRef (ST s) Source # 
Instance details

Methods

newRef :: a -> ST s (Ref (ST s) a) Source #

HasRef (ST s) Source # 
Instance details

Methods

newRef :: a -> ST s (Ref (ST s) a) Source #

Monad m => NewRef (IO a) m a Source # 
Instance details

Methods

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

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

Methods

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

(Storable a, MonadIO m) => NewRef (ForeignPtr a) m a Source # 
Instance details

Methods

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

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

Methods

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

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

(Storable a, MonadIO m) => ModifyRef (ForeignPtr a) m a Source # 
Instance details

Methods

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

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

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

Methods

readReference :: IO a -> m a Source #

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

Methods

readReference :: IORef a -> m a Source #

(Storable a, MonadIO m) => ReadRef (ForeignPtr a) m a Source # 
Instance details

Methods

readReference :: ForeignPtr a -> m a Source #

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

Methods

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

(Storable a, MonadIO m) => WriteRef (ForeignPtr a) m a Source # 
Instance details

Methods

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

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

Methods

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

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

Methods

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

Monad m => NewRef (ST s a) m a Source # 
Instance details

Methods

newReference :: a -> m (ST s a) Source #

NewRef (STRef RealWorld a) IO a Source # 
Instance details

Methods

newReference :: a -> IO (STRef RealWorld a) Source #

ModifyRef (Ref m a) m a Source # 
Instance details

Methods

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

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

ModifyRef (STRef RealWorld a) IO a Source # 
Instance details

Methods

atomicModifyReference :: STRef RealWorld a -> (a -> (a, b)) -> IO b Source #

modifyReference :: STRef RealWorld a -> (a -> a) -> IO () Source #

ReadRef (Ref m a) m a Source # 
Instance details

Methods

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

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

Methods

readReference :: ST RealWorld a -> m a Source #

ReadRef (STRef RealWorld a) IO a Source # 
Instance details

Methods

readReference :: STRef RealWorld a -> IO a Source #

WriteRef (Ref m a) m a Source # 
Instance details

Methods

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

WriteRef (STRef RealWorld a) IO a Source # 
Instance details

Methods

writeReference :: STRef RealWorld a -> a -> IO () Source #

NewRef (STRef s a) (ST s) a Source # 
Instance details

Methods

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

NewRef (STRef s a) (ST s) a Source # 
Instance details

Methods

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

ModifyRef (STRef s a) (ST s) a Source # 
Instance details

Methods

atomicModifyReference :: STRef s a -> (a -> (a, b)) -> ST s b Source #

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

ModifyRef (STRef s a) (ST s) a Source # 
Instance details

Methods

atomicModifyReference :: STRef s a -> (a -> (a, b)) -> ST s b Source #

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

ReadRef (ST s a) (ST s) a Source # 
Instance details

Methods

readReference :: ST s a -> ST s a Source #

ReadRef (STRef s a) (ST s) a Source # 
Instance details

Methods

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

ReadRef (STRef s a) (ST s) a Source # 
Instance details

Methods

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

WriteRef (STRef s a) (ST s) a Source # 
Instance details

Methods

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

WriteRef (STRef s a) (ST s) a Source # 
Instance details

Methods

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