public void move(int i, int nodeNum, AlternateSpanList target, int targetSubTree) {
        if (targetSubTree < 0 || targetSubTree >= target.getNumSubTrees()) {
            throw new IndexOutOfBoundsException(target + " has no subtree at index " + targetSubTree);
        }
        SpanNode node = children(i).remove(nodeNum);
        if (node != null) {
            //we found the node
            node.setParent(null);
            resetCachedFromAndTo();
            target.add(targetSubTree, node);
        }
    }
Moves a child of this SpanList to another SpanList.

@param i the index of the subtree to remove the node from
@param nodeNum the index of the node to move
@param target the SpanList to add the node to
@param targetSubTree the index of the subtree of the given AlternateSpanList to add the node to
@throws IndexOutOfBoundsException if any of the given indeces are out of range, or the target subtree index is out of range
document/src/main/java/com/yahoo/document/annotation/AlternateSpanList.java