|
Control.Monad.ST.Lazy | Portability | non-portable (requires universal quantification for runST) | Stability | provisional | Maintainer | libraries@haskell.org |
|
|
|
|
Contents |
- The ST monad
- Unsafe operations
- Converting ST To IO
- Converting between strict and lazy ST
|
|
Description |
This module presents an identical interface to Control.Monad.ST,
but the underlying implementation of the state thread is lazy (in
the sense that (_|_ >> a is not necessarily equal to _|_).
|
|
Synopsis |
|
|
|
|
The ST monad |
|
data ST s a |
|
|
runST :: (forall s . ST s a) -> a |
|
fixST :: (a -> ST s a) -> ST s a |
|
Unsafe operations |
|
unsafeInterleaveST :: ST s a -> ST s a |
|
unsafeIOToST :: IO a -> ST s a |
|
Converting ST To IO |
|
stToIO :: ST RealWorld a -> IO a |
|
Converting between strict and lazy ST |
|
strictToLazyST :: ST s a -> ST s a |
Convert a strict ST computation into a lazy one. The strict state
thread passed to strictToLazyST is not performed until the result of
the lazy state thread it returns is demanded.
|
|
lazyToStrictST :: ST s a -> ST s a |
Convert a lazy ST computation into a strict one.
|
|
Produced by Haddock version 0.3 |