public function offsetSet($offset, $value): void {
    if($this->set !== null) {
      $this->set->invoke($this->obj, $offset, $value);
      return;
    }

    throw new NoSuchPropertyException($this->name);
  }