factor out predicate application into `applyPreds`