docs: def append(self, node):
          "Append a new subnode"
          if not isinstance(node, self.__class__):
              raise TypeError('Expected Node instance, got %r' % node)
          self.nodes.append(node)