base-4.3.1.0: Basic libraries

Portability | non-portable (uses Control.Monad.ST)
Stability | experimental
Maintainer | libraries@haskell.org

Data.STRef

Contents

- STRefs

Description

Mutable references in the (strict) ST monad.

Synopsis

- data STRef s a
- newSTRef :: a -> ST s (STRef s a)
- readSTRef :: STRef s a -> ST s a
- writeSTRef :: STRef s a -> a -> ST s ()
- modifySTRef :: STRef s a -> (a -> a) -> ST s ()

# STRefs

data STRef s a

a value of type `STRef s a` is a mutable variable in state thread `s`, containing a value of type `a`

Instances

Typeable2 STRef |
Eq (STRef s a) |

newSTRef :: a -> ST s (STRef s a)

Build a new `STRef` in the current state thread

readSTRef :: STRef s a -> ST s a

Read the value of an `STRef`

writeSTRef :: STRef s a -> a -> ST s ()

Write a new value into an `STRef`

modifySTRef :: STRef s a -> (a -> a) -> ST s ()

Mutate the contents of an `STRef`