[Haskell-cafe] Composing functions with runST

Bulat Ziganshin bulat.ziganshin at gmail.com
Thu Jan 4 07:40:03 EST 2007

Hello Yitzchak,

Thursday, January 4, 2007, 12:25:41 PM, you wrote:

> The other is awkwardness in extending the capabilites
> of ST. For that, I would propose that the function "unsafeRunST"
> be added to the library.

this function exists, but named unsafeIOtoST. IO and ST is exactly the same
things, the only difference that foreign imports may be marked as IO
operations but both ST ones. as a result, ST is restricted to a few
standard operations that guarantees to bo be mutually transparent for
consumers of runST.

when one goes to extend ST functionality, unsafeIOtoST is used. for
3xample, in Hugs it is used to convert peek/poke IO operations into
STUArray implementation. except for compile-time type sugar, there is no
difference between those two type constructors. unsafeIOtoST is like liftIO:

unsafeIOtoST :: IO a -> ST s a

Best regards,
 Bulat                            mailto:Bulat.Ziganshin at gmail.com

More information about the Haskell-Cafe mailing list