[Haskell] threading mutable state through callbacks
k.schupke at imperial.ac.uk
Wed Oct 13 09:58:24 EDT 2004
There are stToIO and ioToST sunctions though (ioToST is unsafe)...
Jules Bean wrote:
> On 13 Oct 2004, at 13:14, MR K P SCHUPKE wrote:
>>> its almost commutative
>> Does that have something to do with splitting the supply?
> That is an approach to getting unique values, I think.
>> why not use 'newSTRef' and use the ST monad...
> In the context of my original question, the answer is that the control
> flow of the program passes through external libraries ('C' code, if
> you like to think of it that way), and the callbacks in question have
> signature IO(), so they are constrained to store all their state in
> the IO monad.
> Were it not for this problem, the ST monad would indeed seem more
> elegant. And some explicit state monad with a nicely designed set of
> state for your application is probably more elegant still... but
> unfortunately that isn't possibly. Unless its possible to arrange
> haskell FFI bindings to have types in MonadIO rather than IO... (a
> question which I asked earlier but no one has answered).
More information about the Haskell