| |||||||||||||||||
| |||||||||||||||||
Contents | |||||||||||||||||
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 |