HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Modulerelude-1.2.0.0Haskell2010

Relude.Lifted.IORef

SPDX-License-Identifier : MIT Maintainer : Kowainik xrom.xkov@gmail.com Stability : Stable Portability : Portable

Lifted reexports from Data.IORef module.

  • 1 type
  • 10 values
  • Packagerelude-1.2.0.0
  • Exports11
  • LanguageHaskell2010
  • LicenceMIT
  • SourceIORef.hs
newtypenewtype IORef a
#

A mutable variable in the IO monad.

Example11 expressions
import GHC.Internal.Data.IORefr <- newIORef 0readIORef r0writeIORef r 1readIORef r1atomicWriteIORef r 2readIORef r2modifyIORef' r (+ 1)readIORef r3atomicModifyIORef' r (\a -> (a + 1, ()))readIORef r4

See also STRef and Control.Concurrent.MVar.MVar.

Instances3NFData1, Eq, NFData
  • NFData1 IORefDefined in deepseq-1.5.0.0 · Control.DeepSeq
  • Eq (IORef a)Defined in ghc-internal-9.1003.0 · GHC.Internal.IORef

    Pointer equality.

  • NFData (IORef a)Defined in deepseq-1.5.0.0 · Control.DeepSeq

    NOTE: Only strict in the reference and not the referenced value.

valueatomicModifyIORef_ :: MonadIO m => IORef a -> (a -> a) -> m ()
#

Version of atomicModifyIORef that discards return value. Useful when you want to update IORef but not interested in the returning result.

Example3 expressions
ref <- newIORef 42atomicModifyIORef_ ref (`div` 2)readIORef ref21
valueatomicModifyIORef'_ :: MonadIO m => IORef a -> (a -> a) -> m ()
#

Version of atomicModifyIORef' that discards return value. Useful when you want to update IORef but not interested in the returning result.

Example3 expressions
ref <- newIORef 42atomicModifyIORef'_ ref (`div` 2)readIORef ref21
valuenewIORef :: MonadIO m => a -> m (IORef a)
#

Lifted version of newIORef.

Example2 expressions
ref <- newIORef False:t refref :: IORef Bool
valuewriteIORef :: MonadIO m => IORef a -> a -> m ()
#

Lifted version of writeIORef.

Example3 expressions
ref <- newIORef 42writeIORef ref 43readIORef ref43