stateref-0.3: Abstraction for things that work like IORef.
Safe HaskellSafe-Inferred
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.Internal.IORef

Methods

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

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

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

Defined in Data.StateRef.Instances

Methods

newReference :: a -> m (IORef a) 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.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 STRef s a #

Instances

Instances details
Eq (STRef s a) 
Instance details

Defined in GHC.Internal.STRef

Methods

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

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

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 #

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

Defined in Data.StateRef.Instances

Methods

newReference :: a -> IO (STRef RealWorld 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 #

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 #

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 #

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
Applicative (ST s) 
Instance details

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

Functor (ST s) 
Instance details

Defined in GHC.Internal.ST

Methods

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

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

Monad (ST s) 
Instance details

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

HasRef (ST s) Source # 
Instance details

Defined in Data.StateRef.Instances

Methods

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

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

Defined in GHC.Internal.ST

Methods

mempty :: ST s a

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

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

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

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

Show (ST s a) 
Instance details

Defined in GHC.Internal.ST

Methods

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

show :: ST s a -> String

showList :: [ST s a] -> ShowS

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 #

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 #

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

Defined in Data.StateRef.Instances

Methods

newReference :: a -> ST s (STRef s a) 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
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 #

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

Defined in Data.StateRef.Instances

Methods

newReference :: a -> IO (STRef RealWorld 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 #

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
Show (ForeignPtr a) 
Instance details

Defined in GHC.Internal.ForeignPtr

Methods

showsPrec :: Int -> ForeignPtr a -> ShowS

show :: ForeignPtr a -> String

showList :: [ForeignPtr a] -> ShowS

Eq (ForeignPtr a) 
Instance details

Defined in GHC.Internal.ForeignPtr

Methods

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

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

Ord (ForeignPtr a) 
Instance details

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

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

Defined in Data.StateRef.Instances

Methods

newReference :: a -> m (ForeignPtr a) 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
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 #

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 #

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

Methods

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

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

Methods

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

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

Methods

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

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

Methods

readReference :: ForeignPtr a -> m a Source #

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

Methods

readReference :: IORef a -> m a Source #

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

Methods

readReference :: IO a -> m a Source #

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

Methods

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

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

Methods

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

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

Methods

newReference :: Maybe a -> m (MVar a) 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 #

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 #

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 #

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

Methods

newReference :: a -> m (Ref 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 #

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

Methods

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

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

Methods

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

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

Methods

writeReference :: Ref m a -> a -> m () 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 #

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 #

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 #