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.