Is there another function in Fortran like `merge` that does not evaluate its arguments?

@Beliavsky, @everythingfunctional see this thread for more “fun” examples of side-effect-free, but not deterministic functions and what it leads to: