Not that it has to be part of this PR but I'd add a new function, like `tx/begin-tx`, that returns only transaction (so there is no need to use destructuring). This will make the example above look even nicer.