lifted-base-0.2.3.6: lifted IO operations from the base library

Copyright | Liyang HU, Bas van Dijk
License | BSD-style
Maintainer | Bas van Dijk <v.dijk.bas@gmail.com>
Stability | experimental
Safe Haskell | Trustworthy
Language | Haskell98

Data.IORef.Lifted

Description

This is a wrapped version of Data.IORef with types generalised from `IO` to all monads in `MonadBase`.

Synopsis

- data IORef a :: * -> *
- newIORef :: MonadBase IO m => a -> m (IORef a)
- readIORef :: MonadBase IO m => IORef a -> m a
- writeIORef :: MonadBase IO m => IORef a -> a -> m ()
- modifyIORef :: MonadBase IO m => IORef a -> (a -> a) -> m ()
- modifyIORef' :: MonadBase IO m => IORef a -> (a -> a) -> m ()
- atomicModifyIORef :: MonadBase IO m => IORef a -> (a -> (a, b)) -> m b
- atomicModifyIORef' :: MonadBase IO m => IORef a -> (a -> (a, b)) -> m b
- atomicWriteIORef :: MonadBase IO m => IORef a -> a -> m ()
- mkWeakIORef :: MonadBaseControl IO m => IORef a -> m () -> m (Weak (IORef a))

# Documentation

data IORef a :: * -> *

A mutable variable in the `IO` monad

Instances

Eq (IORef a) |

newIORef :: MonadBase IO m => a -> m (IORef a) Source

Generalized version of `newIORef`.

readIORef :: MonadBase IO m => IORef a -> m a Source

Generalized version of `readIORef`.

writeIORef :: MonadBase IO m => IORef a -> a -> m () Source

Generalized version of `writeIORef`.

modifyIORef :: MonadBase IO m => IORef a -> (a -> a) -> m () Source

Generalized version of `modifyIORef`.

modifyIORef' :: MonadBase IO m => IORef a -> (a -> a) -> m () Source

Generalized version of `modifyIORef'`.

atomicModifyIORef :: MonadBase IO m => IORef a -> (a -> (a, b)) -> m b Source

Generalized version of `atomicModifyIORef`.

atomicModifyIORef' :: MonadBase IO m => IORef a -> (a -> (a, b)) -> m b Source

Generalized version of `atomicModifyIORef'`.

atomicWriteIORef :: MonadBase IO m => IORef a -> a -> m () Source

Generalized version of `atomicWriteIORef`.

mkWeakIORef :: MonadBaseControl IO m => IORef a -> m () -> m (Weak (IORef a)) Source

Generalized version of `mkWeakIORef`.

Note any monadic side effects in `m` of the "finalizer" computation are discarded.