docs: def copychildren(self, newdoc=None, idsuffix=""):
          """Generator creating a deep copy of the children of this element.
  
          Invokes :meth:`copy` on all children, parameters are the same.
          """
          if idsuffix is True: idsuffix = ".copy." + "%08x" % random.getrandbits(32) #random 32-bit hash for each copy, same one will be reused for all children
          for c in self:
              if isinstance(c, AbstractElement):
                  yield c.copy(newdoc,idsuffix)