public static Cons yieldClosClassTree(Stella_Class renamed_Class) {
    { Cons directsupers = Stella.NIL;
      Cons closslotdefs = Stella.NIL;
      String documentation = ((StringWrapper)(KeyValueList.dynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_DOCUMENTATION, Stella.NULL_STRING_WRAPPER))).wrapperValue;

      { Surrogate renamed_Super = null;
        Cons iter000 = Stella_Class.classNativeSupers(renamed_Class).theConsList;
        Cons collect000 = null;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          renamed_Super = ((Surrogate)(iter000.value));
          if ((!((Stella_Class)(renamed_Super.surrogateValue)).mixinP) ||
              (!Stella.translateToSingleInheritanceLanguageP())) {
            if (collect000 == null) {
              {
                collect000 = Cons.cons(Stella_Class.clTranslateClassName(Surrogate.typeToClass(renamed_Super)), Stella.NIL);
                if (directsupers == Stella.NIL) {
                  directsupers = collect000;
                }
                else {
                  Cons.addConsToEndOfConsList(directsupers, collect000);
                }
              }
            }
            else {
              {
                collect000.rest = Cons.cons(Stella_Class.clTranslateClassName(Surrogate.typeToClass(renamed_Super)), Stella.NIL);
                collect000 = collect000.rest;
              }
            }
          }
        }
      }
      if (directsupers == Stella.NIL) {
        directsupers = Cons.cons(Symbol.clTranslateGlobalSymbol(Stella.SYM_STELLA_CLSYS_ROOT_OBJECT), directsupers);
      }
      { Slot slot = null;
        Iterator iter001 = renamed_Class.classSlots();
        Cons collect001 = null;

        loop001 : while (iter001.nextP()) {
          slot = ((Slot)(iter001.value));
          if (Stella_Object.storageSlotP(slot) &&
              StorageSlot.nativeSlotP(((StorageSlot)(slot)))) {
            if (!(Slot.nativeSlotHome(slot, renamed_Class) == renamed_Class)) {
              if ((slot.slotBaseType != null) &&
                  (!(((Stella_Class)(slot.slotBaseType.surrogateValue)) != null))) {
                {
                  Stella.STANDARD_WARNING.nativeStream.println("Warning: Can't generate a native slot named `" + slot.slotName + "' for the class `" + Stella_Class.className(renamed_Class) + "'");
                  Stella.STANDARD_WARNING.nativeStream.println(" because the slot's :type `" + slot.slotBaseType + "' is undefined.");
                }
;
              }
              continue loop001;
            }
            if (collect001 == null) {
              {
                collect001 = Cons.cons(StorageSlot.yieldClosSlotTree(((StorageSlot)(slot))), Stella.NIL);
                if (closslotdefs == Stella.NIL) {
                  closslotdefs = collect001;
                }
                else {
                  Cons.addConsToEndOfConsList(closslotdefs, collect001);
                }
              }
            }
            else {
              {
                collect001.rest = Cons.cons(StorageSlot.yieldClosSlotTree(((StorageSlot)(slot))), Stella.NIL);
                collect001 = collect001.rest;
              }
            }
          }
        }
      }
      return (Cons.list$(Cons.cons(Stella.internCommonLispSymbol("DEFCLASS"), Cons.cons(Symbol.clTranslateGlobalSymbol(Stella_Class.classSymbol(renamed_Class)), Cons.cons(Cons.cons(directsupers, Cons.cons(closslotdefs, (((documentation != null) ? Cons.cons(Cons.list$(Cons.cons(Stella.KWD_DOCUMENTATION, Cons.cons(StringWrapper.wrapString(documentation), Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL) : Stella.NIL)).concatenate(Stella.NIL, Stella.NIL))), Stella.NIL)))));
    }
  }