Why does `and` process both expressions if the first one fails?

Interesting, thanks for the workaround. I will give it a shot.