| |||||||||||||||||
| |||||||||||||||||
| 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.4 |