Instead of evaluating a predicate once for all context nodes, they should instead be evaluated separately per context node.