anchor.diff:              Default
       end.
   
  -manage_chunk(undefined, Data, Responses, State) ->
  -    NewResponses = queue:in(Data, Responses),
  +manage_chunk(IsFin, undefined, StreamRef, Data, Responses, State) ->
  +    NewResponses = queue:in({IsFin, StreamRef, Data}, Responses),
       {next_state, receive_chunk, State#{responses => NewResponses}};
  -manage_chunk(StreamTo, Data, _Responses, State) ->
  -    StreamTo ! Data,
  +manage_chunk(IsFin, HandleEvent, StreamRef, Data, _Responses, State) ->
  +    HandleEvent(IsFin, StreamRef, Data),
       {next_state, receive_chunk, State}.
  
positive.code:     get(Pid, Url, Headers, #{}).
  
  get(Pid, Url, Headers, Options) ->
      StreamTo = maps_get(stream_to, Options, false),
      Async = maps_get(async, Options, false),
      case {StreamTo, Async} of
          {false, false} ->
              gen_fsm:sync_send_event(Pid, {get, Url, Headers});
          {false, Async} ->
              gen_fsm:send_event(Pid, {asyncget, Url, Headers});
          {StreamTo, false} ->
              gen_fsm:send_event(Pid, {asyncget, Url, Headers, StreamTo});
          _ ->
              gen_fsm:send_event(Pid, {asyncget, Url, Headers, StreamTo})
      end.
  
  -spec pop(Pid :: pid()) -> {binary()}.
  
negative.code: clean_state() ->
      #{pid => undefined,
        stream => undefined,
        handle_event => undefined,
        from => undefined,
        responses => queue:new(),
        data => <<"">>,
  