8 Nov
2004
8 Nov
'04
10:58 a.m.
Note that 2-rank type of runSTInit doesn't allow to execute regular IO actions. Even that (ST s a) allows actions like readRef and writeRef. This allows to initialise local references but doesn't allow to access other toplevel reverences since they are bound to RealWorld state.
Thinking about this a bit more - isnt the real problem that the IO monad should infact be a monad-transformer layered ontop of the ST monad. That way ST actions could automatically be lifted to the IO monad using the normal mechanisms provided with monad-transformers. Keean.