I'm not sure I like the idea of passing around calls to reserved methods like __delitem__. I'm also not sure why you're specifying the method used to remove elements from your collections instead of putting these behind common interfaces. Can you explain?