In other cases like `Union` and `Intersection` this method depends on a dispatched `_union` or `_intersection` operator between the different constituent sets.  Are there cases where some sets know how to difference themselves against other specific kinds of sets?  For example what about `Difference(anything, EmptySet)`