Lifter.eliminatePipe(wrapper);
return wrapper;
    public static void fuse(SIRStream str) {	// try fusing toplevel separately since noone contains it	SIRPipeline wrapper = SIRContainer.makeWrapper(str);	FuseAll fuseAll = new FuseAll();	boolean hasFused = true;	while (hasFused) {	    try {		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);		hasFused = false;	    } catch (SuccessfulFuseException e) {}	}	Lifter.eliminatePipe(wrapper);    }