'In-place symmetric difference with *other* set.'

def symmetric_difference(self, other):

    context = self._context
    builder = self._builder
    other_payload = other.payload
    with other_payload._iterate() as loop:
        key = loop.entry.key
        h = loop.entry.hash
        payload = self.payload
        (found, i) = payload._lookup(key, h, for_insert=True)
        entry = payload.get_entry(i)
        with builder.if_else(found) as (if_common, if_not_common):
            with if_common:
                self._remove_entry(payload, entry, do_resize=False)
            with if_not_common:
                self._add_entry(payload, entry, key, h)
    self.downsize(self.payload.used)
