
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@gmail.com