> I couldn't figure out a way to use () for the function call, but I didn't try that hard.
I (Robert) have also given it a shot, briefly, unsuccessfully.
While I was critical of over-engineering this, it turns out that
when we start to use `mut`, a macro is much more practical, because
it doesn't create a new scope where we need a copy of a mutable
reference, which of course is not allowed.
(cherry picked from commit a2acc93d13991da4b14a99065acd589477334d07)