def intersection(other)
      if other.is_a?(RelativeComplement)
        # ¬A ∩ ¬B = ¬(A ∪ B)
        complement.union(other.complement).complement
      else
        # ¬A ∩ B = B ∖ A
        Cantor.build(other).difference(complement)
      end
    end
def intersection(other)
      if other.is_a?(RelativeComplement)
        # ¬A ∩ ¬B = ¬(A ∪ B)
        complement.union(other.complement).complement
      else
        # ¬A ∩ B = B ∖ A
        Cantor.build(other).difference(complement)
      end
    end
(see AbstractSet#intersection)