docs: def default_unmarshaller(instance, state):
      """
      Restore the state of an object.
  
      If the ``__setstate__()`` method exists on the instance, it is called with the state object
      as the argument. Otherwise, the instance's ``__dict__`` is replaced with ``state``.
  
      :param instance: an uninitialized instance
      :param state: the state object, as returned by :func:`default_marshaller`
  
      """
      if hasattr(instance, '__setstate__'):
          instance.__setstate__(state)
      else:
          try:
              instance.__dict__.update(state)
          except AttributeError:
              raise TypeError('{!r} has no __dict__ attribute and does not implement __setstate__()'
                              .format(instance.__class__.__name__))