docs: def lineage(self):
          """
          Return all nodes between this node and the root, including this one.
          """
          if not self.parent:
              return [self]
          else:
              L = self.parent.lineage()
              L.append(self)
              return L