function complement(Set $that) {
        $complement = $this->cloneEmpty();

        if ($that === $this) {
            return $complement;
        }

        $this->addIf($complement, $that, negate([$this, 'has']));

        return $complement;
    }