Remove a child node from the current node instance.

        :param idx: Index of child node to be removed.
        :type idx: int 
        :param name: The first child node found with «name» will be removed. 
        :type name: str
        :param node: Child node to be removed.
        :type node: Node 
        :returns: The node that has been removed, or False if not successful.
        :rtype: Node or False

def remove_child(self, idx=None, *, name=None, node=None):
        """Remove a child node from the current node instance.

        :param idx: Index of child node to be removed.
        :type idx: int 
        :param name: The first child node found with «name» will be removed. 
        :type name: str
        :param node: Child node to be removed.
        :type node: Node 
        :returns: The node that has been removed, or False if not successful.
        :rtype: Node or False 
        """
        if (idx and isinstance(idx, int) and 
            -len(self.childs) <= idx < len(self.childs) ):
                return self.childs.pop(idx)
        if name and isinstance(name, str):
            found_node = None
            for _n in self.childs:
                if _n.name == name:
                    found_node = _n
                    break
            if found_node:
                self.childs.remove(found_node)
                return found_node
        if node and node in self.childs:
            self.childs.remove(node)
            return node
        return False