for (int i=0; i<str.size(); i++) { recurseInto(str.get(i), str.getParams(i), constants); }
    private void recurseFrom(SIRContainer str, Hashtable constants) {	// if we're at the bottom, we're done	if (str.getInit()==null) {	    return;	}	// recursion method depends on whether or not there are still	// init statements	if (Flattener.INIT_STATEMENTS_RESOLVED) {	    for (int i=0; i<str.size(); i++) {		recurseInto(str.get(i), str.getParams(i), constants);	    }	} else {	    // iterate through statements of init function, looking for	    // SIRInit's	    InitPropagator prop=new InitPropagator(constants);	    str.getInit().accept(prop);	    constants=prop.getConstants();	}    }