public static Cons yieldSlotWriterTree(StorageSlot slot, Stella_Class renamed_Class) {
    { Stella_Object typetree = StorageSlot.yieldSlotTypeTree(slot);
      Cons parameters = Cons.list$(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(Symbol.internSymbolInModule(renamed_Class.classType.symbolName, ((Module)(renamed_Class.classType.homeContext)), true), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_VALUE, Cons.cons(typetree, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))));
      boolean slotvisibleP = Surrogate.subtypeOfP(renamed_Class.classType, slot.slotOwner);
      Cons writecode = null;

      if (!slotvisibleP) {
        writecode = Cons.list$(Cons.cons(Stella.SYM_STELLA_PROGN, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_ERROR, Cons.cons(StringWrapper.wrapString("Slot '"), Cons.cons(StringWrapper.wrapString(slot.slotName.symbolName), Cons.cons(Cons.list$(Cons.cons(StringWrapper.wrapString("' does not exist on "), Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(Stella.NIL, 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)))));
      }
      else if (slot.activeP()) {
        writecode = StorageSlot.yieldActiveSlotWriterBody(slot);
      }
      else {
        writecode = Cons.list$(Cons.cons(Stella.SYM_STELLA_RETURN, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SETF, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SLOT_VALUE, Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(slot.slotName, Cons.cons(Stella.NIL, Stella.NIL))))), Cons.cons(Stella.SYM_STELLA_VALUE, Cons.cons(Stella.NIL, Stella.NIL))))), Cons.cons(Stella.NIL, Stella.NIL))));
      }
      return (Cons.list$(Cons.cons(Stella.SYM_STELLA_DEFMETHOD, Cons.cons(Cons.cons(Symbol.yieldSetterMethodName(slot.slotName), Cons.cons(Stella_Object.copyConsTree(typetree), Stella.NIL)), Cons.cons(parameters, Cons.cons(Cons.list$(Cons.cons(Stella.KWD_AUXILIARYp, Cons.cons(Stella.SYM_STELLA_TRUE, Cons.cons(((slotvisibleP ? Stella.NIL : Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_IGNORE, Cons.cons(Stella.SYM_STELLA_VALUE, Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL))).concatenate(Cons.cons(writecode, Stella.NIL), Stella.NIL), Stella.NIL)))), Stella.NIL))))));
    }
  }