Blocks provided to `with` are used as implementation.
Created by: xaviershay
It is confusing to have different behaviour depending on whether the block has arguments or not, and there are better ways to do this.
This behaviour matches that of other message expectations.
Fixes #377 (closed).