public static Cons yieldGenericSlotAccessorDefinition(Stella_Class renamed_Class) {
    { Cons clauses = Stella.NIL;
      Cons accesstree = Stella.NIL;
      Stella_Object valuetree = null;
      Surrogate slottype = null;

      if (!Stella_Class.subclassOfP(renamed_Class, ((Stella_Class)(Stella.SGT_STELLA_OBJECT.surrogateValue)))) {
        return (null);
      }
      { Slot slot = null;
        Cons iter000 = renamed_Class.classLocalSlots.theConsList;

        loop000 : for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          slot = ((Slot)(iter000.value));
          if (Stella_Object.storageSlotP(slot) &&
              StorageSlot.genericSlotReaderP(((StorageSlot)(slot)))) {
            if (slot.slotExternalP ||
                (StorageSlot.spaceSaverSlotAllocationP(((StorageSlot)(slot))) &&
                 (!StorageSlot.slotAccessMethodP(((StorageSlot)(slot)))))) {
              continue loop000;
            }
            accesstree = Cons.list$(Cons.cons(Stella.SYM_STELLA_SETQ, Cons.cons(Stella.SYM_STELLA_VALUE, Cons.cons(Cons.cons(slot.slotName, Cons.cons(Stella.SYM_STELLA_SELF, Stella.NIL)), Cons.cons(Stella.NIL, Stella.NIL)))));
            if (!((StorageSlot)(slot)).slotHardwiredP) {
              slottype = Surrogate.canonicalType(slot.type());
              valuetree = Stella.SYM_STELLA_VALUE;
              if (Surrogate.subtypeOfP(slottype, Stella.SGT_STELLA_LITERAL) &&
                  (Surrogate.lookupLiteralTypeInfo(slottype, Stella.KWD_WRAP_FUNCTION) != null)) {
                valuetree = Cons.list$(Cons.cons(Stella.SYM_STELLA_CAST, Cons.cons(Stella.SYM_STELLA_VALUE, Cons.cons(slottype.typeToWrappedType(), Cons.cons(Stella.NIL, Stella.NIL)))));
              }
              accesstree = Cons.list$(Cons.cons(Stella.SYM_STELLA_IF, Cons.cons(Stella.SYM_STELLA_SETVALUEp, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SETF, Cons.cons(Cons.cons(slot.slotName, Cons.cons(Stella.SYM_STELLA_SELF, Stella.NIL)), Cons.cons(valuetree, Cons.cons(Stella.NIL, Stella.NIL))))), Cons.cons(accesstree, Cons.cons(Stella.NIL, Stella.NIL))))));
            }
            clauses = Cons.cons(Cons.cons(slot.slotName, Cons.cons(accesstree, Stella.NIL)), clauses);
          }
        }
      }
      if (Stella_Class.subclassOfP(renamed_Class, ((Stella_Class)(Stella.SGT_STELLA_DYNAMIC_SLOTS_MIXIN.surrogateValue)))) {
        { Cons renameclauses = Stella.NIL;

          { Slot slot = null;
            Cons iter001 = renamed_Class.classLocalSlots.theConsList;
            Cons collect000 = null;

            for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
              slot = ((Slot)(iter001.value));
              if (Stella_Object.storageSlotP(slot) &&
                  ((!slot.slotExternalP) &&
                   (StorageSlot.spaceSaverSlotAllocationP(((StorageSlot)(slot))) &&
                    ((!StorageSlot.slotAccessMethodP(((StorageSlot)(slot)))) &&
                     (!(slot == StorageSlot.canonicalSlot(((StorageSlot)(slot))))))))) {
                if (collect000 == null) {
                  {
                    collect000 = Cons.cons(Cons.cons(slot.slotName, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SETQ, Cons.cons(Stella.SYM_STELLA_SLOTNAME, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_QUOTE, Cons.cons(StorageSlot.canonicalSlot(((StorageSlot)(slot))).slotName, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))))), Stella.NIL)), Stella.NIL);
                    if (renameclauses == Stella.NIL) {
                      renameclauses = collect000;
                    }
                    else {
                      Cons.addConsToEndOfConsList(renameclauses, collect000);
                    }
                  }
                }
                else {
                  {
                    collect000.rest = Cons.cons(Cons.cons(slot.slotName, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SETQ, Cons.cons(Stella.SYM_STELLA_SLOTNAME, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_QUOTE, Cons.cons(StorageSlot.canonicalSlot(((StorageSlot)(slot))).slotName, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))))), Stella.NIL)), Stella.NIL);
                    collect000 = collect000.rest;
                  }
                }
              }
            }
          }
          if (!(renameclauses == Stella.NIL)) {
            renameclauses = Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CASE, Cons.cons(Stella.SYM_STELLA_SLOTNAME, Cons.cons(renameclauses.concatenate(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_OTHERWISE, Cons.cons(Stella.SYM_STELLA_NULL, Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL), Stella.NIL), Stella.NIL)))), Stella.NIL);
          }
          clauses = Cons.cons(Cons.cons(Stella.SYM_STELLA_OTHERWISE, renameclauses.concatenate(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_IF, Cons.cons(Stella.SYM_STELLA_SETVALUEp, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SET_DYNAMIC_SLOT_VALUE, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_DYNAMIC_SLOTS, Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.SYM_STELLA_SLOTNAME, Cons.cons(Stella.SYM_STELLA_VALUE, Cons.cons(Stella.SYM_STELLA_NULL, Cons.cons(Stella.NIL, Stella.NIL))))))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SETQ, Cons.cons(Stella.SYM_STELLA_VALUE, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_LOOKUP, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_DYNAMIC_SLOTS, Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.SYM_STELLA_SLOTNAME, Cons.cons(Stella.NIL, Stella.NIL))))), Cons.cons(Stella.NIL, Stella.NIL))))), Cons.cons(Stella.NIL, Stella.NIL)))))), Stella.NIL), Stella.NIL)), clauses);
        }
      }
      if (clauses == Stella.NIL) {
        return (null);
      }
      else {
        return (Cons.list$(Cons.cons(Stella.SYM_STELLA_DEFUN, Cons.cons(Cons.cons(Stella_Class.yieldGenericSlotAccessorName(renamed_Class), Cons.cons(Stella.SYM_STELLA_OBJECT, Stella.NIL)), Cons.cons(Cons.list$(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(renamed_Class.classType, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SLOTNAME, Cons.cons(Stella.SYM_STELLA_SYMBOL, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_VALUE, Cons.cons(Stella.SYM_STELLA_OBJECT, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SETVALUEp, Cons.cons(Stella.SYM_STELLA_BOOLEAN, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CASE, Cons.cons(Stella.SYM_STELLA_SLOTNAME, Cons.cons(clauses.reverse().concatenate(Stella.NIL, Stella.NIL), Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_RETURN, Cons.cons(Stella.SYM_STELLA_VALUE, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))))))));
      }
    }
  }