IF (Cst(True)) { Res(x) } { Empty } should return Res(x) and not empty. Hence branching construct can not be evaluated as regular functions that sequence all arguments.