docs: def merge(self):
          """Perform merge of head and update starting from root."""
          if isinstance(self.head, dict) and isinstance(self.update, dict):
              if not isinstance(self.root, dict):
                  self.root = {}
              self._merge_dicts()
          else:
              self._merge_base_values()
  
          if self.conflict_set:
              raise MergeError('Dictdiffer Errors', self.conflicts)