docs: @SuppressWarnings("unchecked")
    public <VALUEBASE, VALUE extends VALUEBASE, KEY extends Key<CoreMap, VALUEBASE>>
      VALUE set(Class<KEY> key, VALUE value) {
  
      // search array for existing value to replace
      for (int i = 0; i < size; i++) {
        if (keys[i] == key) {
          VALUE rv = (VALUE)values[i];
          values[i] = value;
          return rv;
        }
      }
      // not found in arrays, add to end ...
  
      // increment capacity of arrays if necessary
      if (size >= keys.length) {
        int capacity = keys.length + (keys.length < 16 ? 4: 8);
        Class<?>[] newKeys = new Class<?>[capacity];
        Object[] newVals = new Object[capacity];
        System.arraycopy(keys, 0, newKeys, 0, size);
        System.arraycopy(values, 0, newVals, 0, size);
        keys = newKeys;
        values = newVals;
      }
  
      // store value
      keys[size] = key;
      values[size] = value;
      size++;
  
      return null;
    }