public static Stella_Object accessMemoizableIteratorSlotValue(MemoizableIterator self, Symbol slotname, Stella_Object value, boolean setvalueP) {
    if (slotname == Stella.SYM_STELLA_BASE_ITERATOR) {
      if (setvalueP) {
        self.baseIterator = ((Iterator)(value));
      }
      else {
        value = self.baseIterator;
      }
    }
    else if (slotname == Stella.SYM_STELLA_ITERATOR_AND_VALUES) {
      if (setvalueP) {
        self.iteratorAndValues = ((Cons)(value));
      }
      else {
        value = self.iteratorAndValues;
      }
    }
    else if (slotname == Stella.SYM_STELLA_CURSOR) {
      if (setvalueP) {
        self.cursor = ((Cons)(value));
      }
      else {
        value = self.cursor;
      }
    }
    else {
      { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

        stream000.nativeStream.print("`" + slotname + "' is not a valid case option");
        throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
      }
    }
    return (value);
  }