|
| GHC.ST | | Portability | non-portable (GHC Extensions) | | Stability | internal | | Maintainer | cvs-ghc@haskell.org |
|
|
|
| Description |
| The ST Monad.
|
|
| Synopsis |
|
|
|
| Documentation |
|
|
The strict state-transformer monad.
A computation of type ST s a transforms an internal state indexed
by s, and returns a value of type a.
The s parameter is either
- an uninstantiated type variable (inside invocations of runST), or
- RealWorld (inside invocations of Control.Monad.ST.stToIO).
It serves to keep the internal states of different invocations
of runST separate from each other and from invocations of
Control.Monad.ST.stToIO.
The >>= and >> operations are strict in the state (though not in
values stored in the state). For example,
runST (writeSTRef _|_ v >>= f) = _|_ | | Constructors | | Instances | |
|
|
| type STRep s a = State# s -> (#State# s, a#) | Source |
|
|
|
|
|
|
|
|
|
|
| Allow the result of a state transformer computation to be used (lazily)
inside the computation.
Note that if f is strict, fixST f = _|_.
|
|
|
| Return the value computed by a state transformer computation.
The forall ensures that the internal state used by the ST
computation is inaccessible to the rest of the program.
|
|
|
|
| Produced by Haddock version 2.0.0.0 |