On Sun, Oct 13, 2019, 6:12 PM Andrew Barnert 
    from functools import singledispatch
    @singledispatch
    def just_add_it(collection, value):
        raise TypeError(blah blah)

Now you can explicitly register methods like this:

    just_add_it.register(set, set.add)
    just_add_it.register(list, list.append)
    just_add_it.register(Queue, Queue.put)
    @just_add_it.register(MyCollection)
    def _(stuff, item):
        # ....

More generally, both you and Steve Jorgensen seem to be proposing a bunch of things that already exist. It’s worth taking the time to figure out what’s already there before suggesting changes.

Sort of. I proposed the spelling as .register() because single dispatch was the obvious way to implement it.

The `just_add_it()` function would be a new thing, whether in a personal toolkit or in the collections module. Hopefully with a better name than my placeholder. But yeah, given that your three line implementation is basically feature complete, probably there's no reason it needs to live in stdlib.

My point was really just that a function could be more flexible than a method added to every collection type, or even than a protocol.