Safe Haskell | None |
---|---|
Language | Haskell98 |
Synopsis
- unsafeInterleaveST :: ST s a -> ST s a
- unsafeIOToST :: IO a -> ST s a
- unsafeSTToIO :: ST s a -> IO a
Unsafe operations
unsafeInterleaveST :: ST s a -> ST s a #
unsafeInterleaveST
allows an ST
computation to be deferred
lazily. When passed a value of type ST a
, the ST
computation will
only be performed when the value of the a
is demanded.
unsafeIOToST :: IO a -> ST s a #
unsafeSTToIO :: ST s a -> IO a #
Convert an ST
action to an IO
action.
This relies on IO
and ST
having the same representation modulo the
constraint on the type of the state.
For an example demonstrating why this is unsafe, see https://mail.haskell.org/pipermail/haskell-cafe/2009-April/060719.html