def default(self, value):
        """Change of resolver name.

        :param value: new default value to use.
        :type value: str or callable
        :raises: KeyError if value is a string not already registered."""

        if value is None:
            if self:
                value = list(self.keys())[0]

        elif not isinstance(value, string_types):
            value = register(exprresolver=value, reg=self)

        elif value not in self:
            raise KeyError(
                '{0} not registered in {1}'.format(value, self)
            )

        self._default = value