anchor.diff:          Event = {put, {Url, Headers, Body}},
           StreamRef = gen_fsm:sync_send_event(Pid, Event),
           {ok, StreamRef}
  +    catch
  +        _:Reason -> {error, Reason}
  +    end.
  +
  +
  +-spec request(pid(), http_verb(), string(), headers(), iodata(), options()) ->
  +    result().
  +request(Pid, Method, Uri, Headers0, Body, Options) ->
  +    try
  +        #{handle_event := HandleEvent,
  +          headers := Headers} = process_options(Options, Headers0, Method),
  +        Event = {Method, {Uri, Headers, Body}},
  +        Response = gen_fsm:sync_send_event(Pid, Event),
  +        {ok, Response}
       catch
           _:Reason -> {error, Reason}
       end.
  
positive.code: 
      Event = case IsAsync of
                  true ->
                      {get_async, {HandleEvent, AsyncMode}, {Url, Headers}};
                  false ->
                      {get, {Url, Headers}}
             end,
      StreamRef = gen_fsm:sync_send_event(Pid, Event),
      {ok, StreamRef}.
  
negative.code:     try
          #{handle_event := HandleEvent,
            headers := Headers} = process_options(Options, Headers0, head),
          Event = {head, {Url, Headers, []}},
          StreamRef = gen_fsm:sync_send_event(Pid, Event),
          {ok, StreamRef}
      catch
  