> z = Complex[1, 1]
> p it if a(z.conj.it!) # prints 1.414..., not Complex[1, -1]
If there's anything our functional programming friends can
teach us, it's that side effects will always come back to
bite you. :)

I like your syntax, though. Perhaps there is some wizardry
that could be done that would get the semantics of let()
but the syntax of it!() ?