Portability | IO |
---|---|

Stability | experimental |

Maintainer | John Launchbury, john@galois.com |

Overloads the standard operations on IORefs, as defined in Data.IORef. This module is name-for-name swappable with Data.IORef unless ghc-specific operations like weak pointers are used.

The standard operations on `IORef`

(such as
`newIORef`

, or `modifyIORef`

) are overloaded over the
`MonadIO`

class. A monad `m`

is declared an instance of
`MonadIO`

by defining a function

liftIO :: IO a -> m a

- class Monad m => MonadIO m where
- data IORef a
- newIORef :: MonadIO io => a -> io (IORef a)
- readIORef :: MonadIO io => IORef a -> io a
- writeIORef :: MonadIO io => IORef a -> a -> io ()
- modifyIORef :: MonadIO io => IORef a -> (a -> a) -> io ()
- atomicModifyIORef :: MonadIO io => IORef a -> (a -> (a, b)) -> io b

# Documentation

writeIORef :: MonadIO io => IORef a -> a -> io ()Source

modifyIORef :: MonadIO io => IORef a -> (a -> a) -> io ()Source

atomicModifyIORef :: MonadIO io => IORef a -> (a -> (a, b)) -> io bSource