important news: refocusing discussion
Simon Marlow
simonmar at microsoft.com
Wed Mar 29 05:20:01 EST 2006
On 29 March 2006 11:00, Ross Paterson wrote:
> On Tue, Mar 28, 2006 at 10:25:04AM +0100, Simon Marlow wrote:
>> On 28 March 2006 00:24, Ross Paterson wrote:
>>> How about STM (minus retry/orElse) and TVars as the portable
>>> interface? They're trivial for a single-threaded implementation, and
>>> provide a comfortable interface for everyone.
>>
>> It just occurred to me that STM isn't completely trivial in a
>> single-threaded implementation, because exceptions have to abort a
>> transaction in progress.
>
> Almost trivial, though:
>
> import Prelude hiding (catch)
> import Control.Exception
> import Data.IORef
>
> -- The reference contains a rollback action to be executed on
> newtype STM a = STM (IORef (IO ()) -> IO a)
very clever ;-)
Simon
More information about the Haskell-prime
mailing list