> Note that in this design we can’t use plain `&` for PANDP because 
> after an expression, “& …” looks like more of the expression.
Can you clarify this?  Why could we not use & for PANDP, in :
     if (x instanceof (P(var x) & Q(var y)) { ... } ?