[Haskell-cafe] New STM Data Structures Collection
lambda.fairy at gmail.com
Fri Oct 23 03:33:53 UTC 2015
> The isEmpty is not out of date as STM will detect if it is and restart the
> transaction. The take operation will block if the bag is empty. If this
> isn't clear in the documentation we should make it clearer. You can write a
> maybeTake using orElse:
> maybeTake b = (Just <$> take b) `orElse` return Nothing
Note that this can also be written as
maybeTake = optional . take
where optional comes from Control.Applicative.
Chris Wong (https://lambda.xyz)
"I fear that Haskell is doomed to succeed."
-- Tony Hoare
More information about the Haskell-Cafe