SIRRecursiveStub stub = new SIRRecursiveStub(className, (Kopi2SIR)AutoCloner.deepCopy(this));
SIRRecursiveStub stub = new SIRRecursiveStub(className,this);
    private SIROperator getVisitedOp(String className)     {	SIROperator visitedOp=(SIROperator)visitedSIROps.get(className);	if((visitedOp instanceof SIRContainer)&&(searchList.contains(className))) {	    /*	    at.dms.util.Utils.fail("Mutually recursive stream defintion of " + 				       className);	    */	    SIRRecursiveStub stub = new SIRRecursiveStub(className, (Kopi2SIR)AutoCloner.deepCopy(this));	    return stub;	}	if (visitedOp!=null) {	    return visitedOp;	}	//if not look for it over the entire application (if given)	else if (application != null) {	    //if this class name is already trying to be resolved then	    //we have a mutually recursive defintion	    if (searchList.contains(className)) {		System.err.println(visitedSIROps);		at.dms.util.Utils.fail("Mutually recursive stream defintion of " + 				       className);	    }	    return searchForOp(className);	}	at.dms.util.Utils.fail(lineNumber + ": Cannot find declaration of stream " +			       className);	return null;    }