ranges: make possibly_true/false() take expression pointers