|
GHC.ST | Portability | non-portable (GHC Extensions) | Stability | internal | Maintainer | cvs-ghc@haskell.org |
|
|
|
|
|
Description |
The ST Monad.
|
|
Synopsis |
|
|
|
Documentation |
|
newtype ST s a |
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 unstantiated type variable (inside invocations of runST), or
- RealWorld (inside invocations of stToIO).
It serves to keep the internal states of different invocations
of runST separate from each other and from invocations of
stToIO. | Constructors | | Instances | |
|
|
type STRep s a = State# s -> (#State# s, a#) |
|
data STret s a |
|
|
liftST :: ST s a -> State# s -> STret s a |
|
unsafeInterleaveST :: ST s a -> ST s a |
|
fixST :: (a -> ST s a) -> ST s a |
Allow the result of a state transformer computation to be used (lazily)
inside the computation.
Note that if f is strict, fixST f = _|_. |
|
runST :: (forall s . ST s a) -> a |
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. |
|
runSTRep :: (forall s . STRep s a) -> a |
|
Produced by Haddock version 0.6 |