public function offsetSet( $offset, $value )
	{
		$is_offset_string = is_string( $offset );
		$is_value_string  = is_string( $value );

		/** e.g., `$obj[] = 'foo';` */
		if ( null === $offset && $is_value_string ) {
			$this->add( $value );
		}
		elseif ( is_bool( $value ) && $is_offset_string ) {
			/** e.g., `$obj['foo'] = true;` */
			if ( $value ) {
				$this->add( $offset );
			}
			/** e.g., `$obj['foo'] = false;` */
			else {
				$this->remove( $offset );
			}
		}
		elseif ( $is_offset_string && $is_value_string ) {
			/** e.g., `$obj['foo'] = 'bar';` */
			$this->replace( $offset, $value );
		}
	}