public static Stella_Object accessAlternativeBindingsSetSlotValue(AlternativeBindingsSet self, Symbol slotname, Stella_Object value, boolean setvalueP) {
    if (slotname == Logic.SYM_LOGIC_THE_VARIABLE) {
      if (setvalueP) {
        self.theVariable = ((PatternVariable)(value));
      }
      else {
        value = self.theVariable;
      }
    }
    else if (slotname == Logic.SYM_LOGIC_BINDINGS) {
      if (setvalueP) {
        self.bindings = ((Set)(value));
      }
      else {
        value = self.bindings;
      }
    }
    else if (slotname == Logic.SYM_STELLA_SURROGATE_VALUE_INVERSE) {
      if (setvalueP) {
        self.surrogateValueInverse = ((Surrogate)(value));
      }
      else {
        value = self.surrogateValueInverse;
      }
    }
    else {
      if (setvalueP) {
        KeyValueList.setDynamicSlotValue(self.dynamicSlots, slotname, value, null);
      }
      else {
        value = self.dynamicSlots.lookup(slotname);
      }
    }
    return (value);
  }