Alexander Belopolsky wrote:
Here is an alternative idea on how storing interned objects in a set can be supported. Currently set.add method returns None and had no effect when set already has an object equal to the one being added. I propose to consider changing that behavior to make set.add return the added object or the set member that is equal to the object being added. It is unlikely that many programs rely on the return value being None (with doctests being a probable exception), so adding this feature is unlikely to cause much grief.
I had exactly the same idea, but did not post because it violates the general rule that mutators return None. On the other hand, the returned value here would not be the mutated collection, so no chaining is possible. And 'add' is clearly intended to change something.
On the other hand, frozensets do not have an add method.
Terry Jan Reedy