@param d: An instance of dict, that is: isinstance(d, dict)
    @param key: a key
    @param value: a value to associate with the key

    @return: None

    @raise: OverwriteError if the key is already present in d.

def setitem_without_overwrite(d, key, value):
    """
    @param d: An instance of dict, that is: isinstance(d, dict)
    @param key: a key
    @param value: a value to associate with the key

    @return: None

    @raise: OverwriteError if the key is already present in d.
    """
    if key in d:
        raise OverwriteError(key, value, d[key])
    else:
        dict.__setitem__(d, key, value)