Transactional events
Asynchronous exceptions in Haskell