def insert(self, i, *nodes):
        r"""Add node(s) to this node's list of children, inserted at position i.

        :param int i: Position to add nodes to
        :param TexNode nodes: List of nodes to add

        >>> from TexSoup import TexSoup
        >>> soup = TexSoup(r'''
        ... \begin{itemize}
        ...     \item Hello
        ...     \item Bye
        ... \end{itemize}''')
        >>> item = soup.item
        >>> soup.item.delete()
        >>> soup.itemize.insert(1, item)
        >>> soup.itemize
        \begin{itemize}
            \item Hello
            \item Bye
        \end{itemize}
        """
        assert isinstance(i, int), (
                'Provided index "{}" is not an integer! Did you switch your '
                'arguments? The first argument to `insert` is the '
                'index.'.format(i))
        self.expr.insert(i, *nodes)
r"""Add node(s) to this node's list of children, inserted at position i.

        :param int i: Position to add nodes to
        :param TexNode nodes: List of nodes to add

        >>> from TexSoup import TexSoup
        >>> soup = TexSoup(r'''
        ... \begin{itemize}
        ...     \item Hello
        ...     \item Bye
        ... \end{itemize}''')
        >>> item = soup.item
        >>> soup.item.delete()
        >>> soup.itemize.insert(1, item)
        >>> soup.itemize
        \begin{itemize}
            \item Hello
            \item Bye
        \end{itemize}