docs: def _add_section(self, section):
          """Adds a new section to the free section list, but before that and if 
          section merge is enabled, tries to join the rectangle with all existing 
          sections, if successful the resulting section is again merged with the 
          remaining sections until the operation fails. The result is then 
          appended to the list.
  
          Arguments:
              section (Rectangle): New free section.
          """
          section.rid = 0     
          plen = 0
  
          while self._merge and self._sections and plen != len(self._sections):
              plen = len(self._sections)
              self._sections = [s for s in self._sections if not section.join(s)]
          self._sections.append(section)