FWIW, we've had great success eliminating pointless bugs by avoiding `result` in most code: <https://status-im.github.io/nim-style-guide/language.result.html#practical-notes> \- both in nested and early-return code.
Even if you insist on using `result`, you can avoid many of its pitfalls and the unnecessary repetition highlighted in the original question: result = if a: 42 else: 54 Run