public static Cons yieldEvaluatorWrapperTree(MethodSlot method) {
    { Stella_Object nametree = Symbol.yieldEvaluatorWrapperName(method.slotName);
      Cons calltree = Cons.cons(method.slotName, Stella.NIL);
      List parametertypespecs = method.methodParameterTypeSpecifiers();
      Surrogate resulttype = method.type();
      int nofparameters = parametertypespecs.length();
      boolean variableargumentsP = ((BooleanWrapper)(KeyValueList.dynamicSlotValue(method.dynamicSlots, Stella.SYM_STELLA_METHOD_VARIABLE_ARGUMENTSp, Stella.FALSE_WRAPPER))).wrapperValue;

      { int index = Stella.NULL_INTEGER;
        int iter000 = 1;
        int upperBound000 = nofparameters;
        boolean unboundedP000 = upperBound000 == Stella.NULL_INTEGER;
        Cons collect000 = null;

        for (;unboundedP000 ||
                  (iter000 <= upperBound000); iter000 = iter000 + 1) {
          index = iter000;
          if (collect000 == null) {
            {
              collect000 = Cons.cons(Symbol.yieldArgumentAccessTree(Stella.SYM_STELLA_ARGUMENTS, index, variableargumentsP &&
                  (index == nofparameters)), Stella.NIL);
              if (calltree == Stella.NIL) {
                calltree = collect000;
              }
              else {
                Cons.addConsToEndOfConsList(calltree, collect000);
              }
            }
          }
          else {
            {
              collect000.rest = Cons.cons(Symbol.yieldArgumentAccessTree(Stella.SYM_STELLA_ARGUMENTS, index, variableargumentsP &&
                  (index == nofparameters)), Stella.NIL);
              collect000 = collect000.rest;
            }
          }
        }
      }
      { StandardObject ptype = null;
        Cons iter001 = parametertypespecs.theConsList;
        ConsIterator it = calltree.rest.allocateIterator();

        for (;(!(iter001 == Stella.NIL)) &&
                  it.nextP(); iter001 = iter001.rest) {
          ptype = ((StandardObject)(iter001.value));
          if (StandardObject.subTypeSpecOfP(ptype, Stella.SGT_STELLA_LITERAL)) {
            it.valueSetter(Cons.list$(Cons.cons(Stella.SYM_STELLA_WRAPPER_VALUE, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SAFE_CAST, Cons.cons(it.value, Cons.cons(Cons.cons(StandardObject.typeSpecToBaseType(ptype).typeToWrappedType(), Stella.NIL), Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))));
          }
          else if (StandardObject.subTypeSpecOfP(ptype, Stella.SGT_STELLA_ARGUMENT_LIST)) {
            Symbol.pushVariableBinding(Stella.SYM_STELLA_ARGUMENTS, MethodSlot.yieldListifiedVariableArgumentsType(method));
            it.valueSetter(Stella_Object.sysTree(Stella_Object.walkWithoutTypeTree(it.value), ptype, new Object[1]));
            Stella.popVariableBinding();
          }
          else if (!(ptype == Stella.SGT_STELLA_OBJECT)) {
            it.valueSetter(Cons.list$(Cons.cons(Stella.SYM_STELLA_SAFE_CAST, Cons.cons(it.value, Cons.cons(Cons.cons(StandardObject.yieldTypeSpecTree(ptype), Stella.NIL), Stella.NIL)))));
          }
        }
      }
      if (StandardObject.voidP(resulttype)) {
      }
      else if (Surrogate.subtypeOfP(resulttype, Stella.SGT_STELLA_LITERAL)) {
        nametree = Cons.cons(nametree, Cons.cons(resulttype.typeToWrappedType(), Stella.NIL));
        if (method.type() == Stella.SGT_STELLA_BOOLEAN) {
          calltree = Cons.list$(Cons.cons(Stella.SYM_STELLA_RETURN, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_WRAP_BOOLEAN, Cons.cons(calltree, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))));
        }
        else {
          calltree = Cons.list$(Cons.cons(Stella.SYM_STELLA_LET, Cons.cons(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_RESULT, Cons.cons(calltree, Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_IF, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_DEFINEDp, Cons.cons(Stella.SYM_STELLA_RESULT, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_RETURN, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_WRAP_LITERAL, Cons.cons(Stella.SYM_STELLA_RESULT, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_RETURN, Cons.cons(Stella.SYM_STELLA_NULL, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))))), Cons.cons(Stella.NIL, Stella.NIL)))));
        }
      }
      else {
        nametree = Cons.cons(nametree, Cons.cons(resulttype, Stella.NIL));
        calltree = Cons.list$(Cons.cons(Stella.SYM_STELLA_RETURN, Cons.cons(calltree, Cons.cons(Stella.NIL, Stella.NIL))));
      }
      return (Cons.list$(Cons.cons(Stella.SYM_STELLA_DEFUN, Cons.cons(nametree, Cons.cons(Cons.list$(Cons.cons(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_ARGUMENTS, Cons.cons(Stella.SYM_STELLA_CONS, Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL), Cons.cons(Stella.KWD_AUXILIARYp, Cons.cons(Stella.SYM_STELLA_TRUE, Cons.cons((((nofparameters == 0) ? Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_IGNORE, Cons.cons(Stella.SYM_STELLA_ARGUMENTS, Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL) : Stella.NIL)).concatenate(Cons.cons(calltree, Stella.NIL), Stella.NIL), Stella.NIL))))), Stella.NIL)))));
    }
  }