Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Unlifted Data.IORef.
Since: 0.1.0.0
Synopsis
- data IORef a
- newIORef :: MonadIO m => a -> m (IORef a)
- readIORef :: MonadIO m => IORef a -> m a
- writeIORef :: MonadIO m => IORef a -> a -> m ()
- modifyIORef :: MonadIO m => IORef a -> (a -> a) -> m ()
- modifyIORef' :: MonadIO m => IORef a -> (a -> a) -> m ()
- atomicModifyIORef :: MonadIO m => IORef a -> (a -> (a, b)) -> m b
- atomicModifyIORef' :: MonadIO m => IORef a -> (a -> (a, b)) -> m b
- atomicWriteIORef :: MonadIO m => IORef a -> a -> m ()
- mkWeakIORef :: MonadUnliftIO m => IORef a -> m () -> m (Weak (IORef a))
Documentation
A mutable variable in the IO
monad.
>>>
import Data.IORef
>>>
r <- newIORef 0
>>>
readIORef r
0>>>
writeIORef r 1
>>>
readIORef r
1>>>
atomicWriteIORef r 2
>>>
readIORef r
2>>>
modifyIORef' r (+ 1)
>>>
readIORef r
3>>>
atomicModifyIORef' r (\a -> (a + 1, ()))
>>>
readIORef r
4
Instances
NFData1 IORef | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
NFData (IORef a) | NOTE: Only strict in the reference and not the referenced value. Since: deepseq-1.4.2.0 |
Defined in Control.DeepSeq | |
Eq (IORef a) | Pointer equality. Since: base-4.0.0.0 |
writeIORef :: MonadIO m => IORef a -> a -> m () Source #
Lifted writeIORef
.
Since: 0.1.0.0
modifyIORef :: MonadIO m => IORef a -> (a -> a) -> m () Source #
Lifted modifyIORef
.
Since: 0.1.0.0
modifyIORef' :: MonadIO m => IORef a -> (a -> a) -> m () Source #
Lifted modifyIORef'
.
Since: 0.1.0.0
atomicModifyIORef :: MonadIO m => IORef a -> (a -> (a, b)) -> m b Source #
Lifted atomicModifyIORef
.
Since: 0.1.0.0
atomicModifyIORef' :: MonadIO m => IORef a -> (a -> (a, b)) -> m b Source #
Lifted atomicModifyIORef'
.
Since: 0.1.0.0
atomicWriteIORef :: MonadIO m => IORef a -> a -> m () Source #
Lifted atomicWriteIORef
.
Since: 0.1.0.0
mkWeakIORef :: MonadUnliftIO m => IORef a -> m () -> m (Weak (IORef a)) Source #
Unlifted mkWeakIORef
.
Since: 0.1.0.0