'od.__eq__(y) <==> od==y.  Comparison to another OD is order-sensitive
while comparison to a regular mapping is order-insensitive.'

def __eq__(self, other):

    if isinstance(other, OrderedDict):
        return (dict.__eq__(self, other) and all(_imap(_eq, self, other)))
    return dict.__eq__(self, other)
