[Haskell] threading mutable state through callbacks

Keean Schupke k.schupke at imperial.ac.uk
Wed Oct 13 09:58:24 EDT 2004


There are stToIO and ioToST sunctions though (ioToST is unsafe)...

Keean

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.
>
>>> newIORef
>>
>>
>> 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).
>
> Juels
>



More information about the Haskell mailing list