@noel-yap, agree in abstract principle that splitting responsibilities when possible is a good thing.  That said, CategoryFilter is published, and deprecation has its costs.  I don't see an argument above that convinces me that deprecating CategoryFilter would serve users in good stead--anyone who wants to implement inclusion in one object and exclusion in another can create two instances of CategoryFilter, and intersect them or do whatever else they wish.