Copyright | (c) 2010 Galois, Inc. |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | John Launchbury, john@galois.com |
Stability | experimental |
Portability | IO |
Safe Haskell | Safe-Inferred |
Language | Haskell98 |
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 b Source