Choosing the way of handling null with logical operators is basically a choice between three valued logic or typical “pragmatic” treating not-true values as false. I like the former approach but I chose the latter — it is faster to implement and run, probably it will be easier to grasp and most importantly I don’t see benefits of three valued logic. Every
if branch is executed or not, there is no a third way for it, so if I ultimately ask “is this true” I can ask the same question right away when I see
Well, if I missed something here in worst case I will change the null logic.