public void prettyPrintObject(OutputStream stream) {
    { Stella_Class self = this;

      { Object old$Slotoptionslots$000 = Stella.$SLOTOPTIONSLOTS$.get();
        Object old$Classoptionslots$000 = Stella.$CLASSOPTIONSLOTS$.get();
        Object old$Classunstringifiedoptions$000 = Stella.$CLASSUNSTRINGIFIEDOPTIONS$.get();

        try {
          Native.setSpecial(Stella.$SLOTOPTIONSLOTS$, Stella.getSlotOptions());
          Native.setSpecial(Stella.$CLASSOPTIONSLOTS$, Stella.getClassOptions());
          Native.setSpecial(Stella.$CLASSUNSTRINGIFIEDOPTIONS$, Stella_Class.getUnstringifiedClassOptions(self));
          stream.nativeStream.print("(defclass " + self.classType.symbolName + " ");
          Iterator.printClassList(TypesToClassesIterator.newTypesToClassesIterator(self.classDirectSupers.theConsList), stream);
          Stella_Class.prettyPrintClassOptions(self, stream);
          Stella_Class.prettyPrintSlots(self, stream);
          stream.nativeStream.println(")");
          if (Stella_Class.classTables(self, Stella.NIL).nextP()) {
            stream.nativeStream.println();
            { Table table = null;
              Iterator iter000 = Stella_Class.classTables(self, Stella.NIL);

              while (iter000.nextP()) {
                table = ((Table)(iter000.value));
                table.prettyPrintObject(stream);
                stream.nativeStream.println();
              }
            }
            stream.nativeStream.println();
          }

        } finally {
          Stella.$CLASSUNSTRINGIFIEDOPTIONS$.set(old$Classunstringifiedoptions$000);
          Stella.$CLASSOPTIONSLOTS$.set(old$Classoptionslots$000);
          Stella.$SLOTOPTIONSLOTS$.set(old$Slotoptionslots$000);
        }
      }
    }
  }