def __setitem__(self, index, val):
if val == self[index]:<EOL><INDENT>return<EOL><DEDENT>self.check_insertion(val)<EOL>old = self.real_list[index]<EOL>self._items.remove(old)<EOL>self.real_list.__setitem__(index, val)<EOL>self._items |= {val}<EOL>
See :meth:`~pluginsmanager.observer.observable_list.ObservableList.__setitem__()` method

Swap doesn't works::

    >>> builder = Lv2EffectBuilder()
    >>> effects = EffectsList()
    >>> effects.append(builder.build('http://calf.sourceforge.net/plugins/Reverb'))
    >>> effects.append(builder.build('http://guitarix.sourceforge.net/plugins/gx_fuzzfacefm_#_fuzzfacefm_'))
    >>> effects[0], effects[1] = effects[1], effects[0]
    pluginsmanager.model.effects_list.AlreadyAddedError: The effect 'GxFuzzFaceFullerMod' already added