Change the return type of Predicate::evaluate