How would one go about branching in GNU dc? OpenBSD's implementation has conditionals with an else-branch, but GNU's does not... so you can conditionally execute one macro, but when it completes it drops you back in the same place in the code.
It seems like it could maybe be accomplished by leaving a sentinel value on the stack, but that's error-prone (especially so since dc can't do string comparison, so we're left with sentinels that are just numbers).
Maybe something to do with q/Q ?
Is this even possible?