A persistent immutable's delattr allows the object's value-caches to be invalidated, otherwise
    raises an exception.

def _imm_delattr(self, name):
    '''
    A persistent immutable's delattr allows the object's value-caches to be invalidated, otherwise
    raises an exception.
    '''
    if _imm_is_persist(self):
        values = _imm_value_data(self)
        if name in values:
            dd = object.__getattribute__(self, '__dict__')
            if name in dd:
                del dd[name]
                if name in _imm_const_data(self): _imm_check(imm, [name])
        else:
            raise TypeError('Attempt to reset parameter \'%s\' of non-transient immutable' % name)
    else:
        return _imm_trans_delattr(self, name)