def set_child(self, i: int, child: NL) -> None:
        """
        Equivalent to 'node.children[i] = child'. This method also sets the
        child's parent attribute appropriately.
        """
        child.parent = self
        self.children[i].parent = None
        self.children[i] = child
        self.changed()
        self.invalidate_sibling_maps()

        Equivalent to 'node.children[i] = child'. This method also sets the
        child's parent attribute appropriately.
        
src/blib2to3/pytree.py