That convinces me. I think you are right. Thanks for the discussion. Also thx to @aloiscochard for the related discussion on irc :). I think we have to pay extra attention on explaining thoroughly how to work with the several monads we have, especially after we probably introduce a transaction monad. It is not particularly hard, but unfamiliar to many people I think. But a clean, orthogonal abstraction indeed!