Safe Haskell | Safe |
---|---|
Language | Haskell98 |
Data.StateRef.Instances
Contents
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
- data IORef a
- data MVar a
- class Monad m => MonadIO (m :: Type -> Type) where
- liftIO :: IO a -> m a
- data STRef s a
- data ST s a
- data RealWorld
- data ForeignPtr a
- data STM a
- data TVar a
- data TMVar a
- atomically :: STM a -> IO a
- newtype UnsafeModifyRef sr = UnsafeModifyRef sr
Documentation
Instances
Eq (IORef a) | |
MonadIO m => NewRef (IORef a) m a Source # | |
Defined in Data.StateRef.Instances Methods newReference :: a -> m (IORef a) Source # | |
MonadIO m => ModifyRef (IORef a) m a Source # | |
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 # | |
Defined in Data.StateRef.Instances Methods readReference :: IORef a -> m a Source # | |
MonadIO m => WriteRef (IORef a) m a Source # | |
Defined in Data.StateRef.Instances Methods writeReference :: IORef a -> a -> m () Source # |
Instances
Eq (MVar a) | |
MonadIO m => PutMRef (MVar a) m a Source # | |
Defined in Data.MRef.Instances Methods putMReference :: MVar a -> a -> m () Source # | |
MonadIO m => TakeMRef (MVar a) m a Source # | |
Defined in Data.MRef.Instances Methods takeMReference :: MVar a -> m a Source # | |
MonadIO m => NewMRef (MVar a) m a Source # | |
Defined in Data.MRef.Instances | |
MonadIO m => NewRef (MVar a) m (Maybe a) Source # | |
Defined in Data.StateRef.Instances Methods newReference :: Maybe a -> m (MVar a) Source # |
class Monad m => MonadIO (m :: Type -> Type) where #
Instances
MonadIO IO | |
Defined in Control.Monad.IO.Class |
Instances
Instances
Monad (ST s) | |
Functor (ST s) | |
MonadFail (ST s) | |
Applicative (ST s) | |
HasRef (ST s) Source # | |
Show (ST s a) | |
Semigroup a => Semigroup (ST s a) | |
Monoid a => Monoid (ST s a) | |
Monad m => NewRef (ST s a) m a Source # | |
Defined in Data.StateRef.Instances Methods newReference :: a -> m (ST s a) Source # | |
MonadIO m => ReadRef (ST RealWorld a) m a Source # | |
Defined in Data.StateRef.Instances Methods readReference :: ST RealWorld a -> m a Source # | |
NewRef (STRef s a) (ST s) a Source # | |
Defined in Data.StateRef.Instances Methods newReference :: a -> ST s (STRef s a) Source # | |
ModifyRef (STRef s a) (ST s) a Source # | |
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 # | |
Defined in Data.StateRef.Instances Methods readReference :: ST s a -> ST s a Source # | |
ReadRef (STRef s a) (ST s) a Source # | |
Defined in Data.StateRef.Instances Methods readReference :: STRef s a -> ST s a Source # | |
WriteRef (STRef s a) (ST s) a Source # | |
Defined in Data.StateRef.Instances Methods writeReference :: STRef s a -> a -> ST s () Source # |
Instances
NewRef (STRef RealWorld a) IO a Source # | |
Defined in Data.StateRef.Instances Methods newReference :: a -> IO (STRef RealWorld a) Source # | |
ModifyRef (STRef RealWorld a) IO a Source # | |
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 # | |
Defined in Data.StateRef.Instances Methods readReference :: ST RealWorld a -> m a Source # | |
ReadRef (STRef RealWorld a) IO a Source # | |
Defined in Data.StateRef.Instances Methods readReference :: STRef RealWorld a -> IO a Source # | |
WriteRef (STRef RealWorld a) IO a Source # | |
Defined in Data.StateRef.Instances Methods writeReference :: STRef RealWorld a -> a -> IO () Source # |
data ForeignPtr a #
Instances
Instances
Instances
Instances
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
(Monad m, ReadRef sr m a, WriteRef sr m a) => ModifyRef (UnsafeModifyRef sr) m a Source # | |
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 # | |
Defined in Data.StateRef.Instances.Undecidable Methods readReference :: UnsafeModifyRef sr -> m a Source # | |
WriteRef sr m a => WriteRef (UnsafeModifyRef sr) m a Source # | |
Defined in Data.StateRef.Instances.Undecidable Methods writeReference :: UnsafeModifyRef sr -> a -> m () Source # |