-
Notifications
You must be signed in to change notification settings - Fork 37
Open
Description
It would be very handy to have a MonadFail instance that retrys. As a minimal motivating example, consider:
pop :: TVar [a] -> STM a
pop v = do
a:as <- readTVar v
writeTVar v as
return a
With a MonadFail instance, this is a very convenient way of writing a transaction that waits until there's a value available in the stack.
More generally, such an instance would allow one to write a transaction as if all your favorite patterns matched, and the transaction would then efficiently block until it's so.
samuel-gelineau-at-well-dot
Metadata
Metadata
Assignees
Labels
No labels