docs: def find_mismatch(self, other, indent=''):
          """
          Highlights where two nodes differ in a human-readable form
  
          Parameters
          ----------
          other : TreeNode
              The node to compare
          indent : str
              The white-space with which to indent output string
  
          Returns
          -------
          mismatch : str
              The human-readable mismatch string
          """
          if self != other:
              mismatch = "\n{}{}".format(indent, type(self).__name__)
          else:
              mismatch = ''
          sub_indent = indent + '  '
          if len(list(self.filesets)) != len(list(other.filesets)):
              mismatch += ('\n{indent}mismatching summary fileset lengths '
                           '(self={} vs other={}): '
                           '\n{indent}  self={}\n{indent}  other={}'
                           .format(len(list(self.filesets)),
                                   len(list(other.filesets)),
                                   list(self.filesets),
                                   list(other.filesets),
                                   indent=sub_indent))
          else:
              for s, o in zip(self.filesets, other.filesets):
                  mismatch += s.find_mismatch(o, indent=sub_indent)
          if len(list(self.fields)) != len(list(other.fields)):
              mismatch += ('\n{indent}mismatching summary field lengths '
                           '(self={} vs other={}): '
                           '\n{indent}  self={}\n{indent}  other={}'
                           .format(len(list(self.fields)),
                                   len(list(other.fields)),
                                   list(self.fields),
                                   list(other.fields),
                                   indent=sub_indent))
          else:
              for s, o in zip(self.fields, other.fields):
                  mismatch += s.find_mismatch(o, indent=sub_indent)
          return mismatch