remove method
Copies the internal set before mutating so it detects the new reference.
Implementation
@override
bool remove(Object? value) {
final copy = {..._internalSet};
final removed = copy.remove(value);
if (removed) _emitSet(copy);
return removed;
}