We care about the value of the predicate on the previous event because the predicate may be computationally expensive. By remembering the previous boolean value that the predicate yielded, we can reuse it if the current event is a duplicate.