E.g. r1 & r2. The result
- contains
r1.error() if r1.has_error(), or
- contains
r2.error() if r2.has_error(), or
- contains
r2.value() otherwise.
As you mentioned on Slack, maybe this should only be allowed when r1 is result<void>, although I personally don't see a problem with it.