public static void texinfoDescribeClass(Stella_Class renamed_Class, OutputStream stream) {
    stream.nativeStream.print("@deftp Class " + Utilities.yieldTexinfoTypeSpec(Stella_Class.classSymbol(renamed_Class)));
    { Surrogate renamed_Super = null;
      Cons iter000 = renamed_Class.classDirectSupers.theConsList;
      int i = Stella.NULL_INTEGER;
      int iter001 = 1;

      for (;!(iter000 == Stella.NIL); iter000 = iter000.rest, iter001 = iter001 + 1) {
        renamed_Super = ((Surrogate)(iter000.value));
        i = iter001;
        if (i == 1) {
          stream.nativeStream.print(" : ");
        }
        else {
          stream.nativeStream.print(", ");
        }
        stream.nativeStream.print(Utilities.yieldTexinfoTypeSpec(renamed_Super));
      }
    }
    stream.nativeStream.println();
    Utilities.texinfoDescribeDocumentationString(renamed_Class, ((StringWrapper)(KeyValueList.dynamicSlotValue(renamed_Class.dynamicSlots, Utilities.SYM_STELLA_DOCUMENTATION, Stella.NULL_STRING_WRAPPER))).wrapperValue, stream, Stella.NIL_LIST);
    { Slot slot = null;
      Cons iter002 = renamed_Class.classLocalSlots.theConsList;

      for (;!(iter002 == Stella.NIL); iter002 = iter002.rest) {
        slot = ((Slot)(iter002.value));
        if (Stella_Object.storageSlotP(slot) &&
            StorageSlot.parameterSlotP(((StorageSlot)(slot)))) {
          Utilities.texinfoDescribeSlot(((StorageSlot)(slot)), stream);
        }
      }
    }
    { Slot slot = null;
      Cons iter003 = renamed_Class.classLocalSlots.theConsList;

      for (;!(iter003 == Stella.NIL); iter003 = iter003.rest) {
        slot = ((Slot)(iter003.value));
        if (Stella_Object.storageSlotP(slot) &&
            StorageSlot.nativeSlotP(((StorageSlot)(slot)))) {
          Utilities.texinfoDescribeSlot(((StorageSlot)(slot)), stream);
        }
      }
    }
    stream.nativeStream.println("@end deftp");
  }