IterFactory.createIter(str).accept(fuseAll);
Utils.assert(wrapper.get(0).getParent() == wrapper); Lifter.lift(wrapper); if (wrapper.size()>1) { wrapper = SIRContainer.makeWrapper(wrapper); } IterFactory.createIter(wrapper.get(0)).accept(fuseAll);
    public static void fuse(SIRStream str) {	// try fusing toplevel separately since noone contains it	FuseAll fuseAll = new FuseAll();	boolean hasFused = true;	while (hasFused) {	    try {		IterFactory.createIter(str).accept(fuseAll);		hasFused = false;	    } catch (SuccessfulFuseException e) {}	}    }