docs: def render_children(self, element):
          """
          Recursively renders child elements. Joins the rendered
          strings with no space in between.
  
          If newlines / spaces are needed between elements, add them
          in their respective templates, or override this function
          in the renderer subclass, so that whitespace won't seem to
          appear magically for anyone reading your program.
  
          :param element: a branch node who has children attribute.
          """
          rendered = [self.render(child) for child in element.children]
          return ''.join(rendered)