anchor.diff:           patch/5,
            %% put
            put/5,
  +         %% generic request
  +         request/6,
            %% events
            events/1
           ]).
  
positive.code:     try
          #{handle_event := HandleEvent,
            headers := Headers} = process_options(Options, Headers0, options),
          Event = {options, {Url, Headers}},
          StreamRef = gen_fsm:sync_send_event(Pid, Event),
          {ok, StreamRef}
      catch
  
negative.code:     end.
  
  -spec do_http_verb(http_verb(), pid(), tuple()) -> reference().
  do_http_verb(Method, Pid, {Uri, Headers, Body}) ->
      MethodStr = string:to_upper(atom_to_list(Method)),
      MethodBin = list_to_binary(MethodStr),
      gun:request(Pid, MethodBin, Uri, Headers, Body).
  
  manage_chunk(IsFin, StreamRef, Data,
               State = #{handle_event := undefined,
  