Thanks for the reply, guys. I think the part that confused me is that `proc
aProc(): T` will happily return `default(T)` in case the return value is
undefined by the end of its execution, as in, for instance:
proc aProc*(): auto =
if false:
return 1
# returns default(int) = 0
Run
I assumed this would be a property of any block; i.e., if one of the paths is
undefined then it'd just evaluate to `default(K)`, where K is the type inferred
from the paths that actually have an evaluation type defined. But I guess
that's not the way it works.