See PredicateDispatching.