> I don't see a simple way to implement S.Integers - S.Naturals.

I think we doing set complements wrong. For example `Interval(0, 1).complement` returns `(-oo, 0) U (1, oo)` but it might be possible that we are working on a complex domain. Complements of sets are contextual.

I propose we create a `SetDifference` or `RelativeComplement` as `Union` and `Intersection`, define rules for membership and the rules for other set operations on it. Then we can define complement for set `s` as `S.UniversalSet - s`.