def __new__(cls, *args, **kwds):
    """
        Dictionary with immutable keys: the values associated to each key can
        be changed, but new keys cannot be added or deleted.


        Example
        -------

        >>> D = frozenkeydict({'foo': 'bar', 'ham': 'spam'})
        >>> D['foo'] = 'foobar'
        >>> D['bacon'] = 'eggs'
        Traceback (most recent call last):
        ...
        KeyError: 'cannot add new keys to frozenkeydict.'

        """
    return dict.__new__(cls, *args, **kwds)
