public static Stella_Object walkCollectionTree(Stella_Object tree, boolean dontoptimizeP, Object [] MV_returnarray) {
    if (Stella_Object.safePrimaryType(tree) == Stella.SGT_STELLA_CONS) {
      { Cons tree000 = ((Cons)(tree));

        if ((!dontoptimizeP) &&
            ((tree000.value == Stella.SYM_STELLA_INTERVAL) &&
             (tree000.length() == 3))) {
          { Stella_Object _return_temp = tree000;

            MV_returnarray[0] = Stella.SGT_STELLA_INTEGER_INTERVAL;
            return (_return_temp);
          }
        }
      }
    }
    else {
    }
    { Stella_Object otree = null;
      StandardObject otype = null;

      { Object [] caller_MV_returnarray = new Object[1];

        otree = Stella_Object.walkExpressionTree(tree, Stella.SGT_STELLA_UNKNOWN, Stella.SYM_STELLA_FOREACH, false, caller_MV_returnarray);
        otype = ((StandardObject)(caller_MV_returnarray[0]));
      }
      return (Stella_Object.sysTree(otree, otype, MV_returnarray));
    }
  }