There was a somewhat ancient discussion on OrderedDict and OrderedSet before: http://mail.python.org/pipermail/python-dev/2005-March/051915.html

The resolution seemed to be that neither of them should be in stdlib. Now that OrderedDict is in and Raymond Hettinger has created a solid OrderedSet implementation: http://code.activestate.com/recipes/576694/ , could the latter also be included in collections?

Here's a very generic use-case:

def _update_key(dct, key, val):
    """
    Update a key in dict *dct*. If they key already exists in *dct* but the
    value doesn't, a set of previous values is created and the value added to it.
    """
    if key in dct:
        if dct[key] == val:
            return
        s = set(dct[key])
        s.update(val)
        dct[key] = s
    else:
        dct[key] = val

The problem is that I both need to remove duplicates and retain insertion order like list.append().