anchor.diff:      enqueue_work_or_stop(wait_response, Event, From, State).
   
   %% @private
  --spec receive_data(term(), pid(), term()) -> term().
  +-spec receive_data(term(), pid(), term()) ->
  +    {stop, {error, any()}, atom(), state()} |
  +    {next_state, atom(), state(), timeout()}.
   receive_data(Event, From, State) ->
       enqueue_work_or_stop(receive_data, Event, From, State).
   
   %% @private
  --spec receive_chunk(term(), pid(), term()) -> term().
  +-spec receive_chunk(term(), pid(), term()) ->
  +    {stop, {error, any()}, atom(), state()} |
  +    {next_state, atom(), state(), timeout()}.
   receive_chunk(Event, From, State) ->
       enqueue_work_or_stop(receive_chunk, Event, From, State).
   
  
positive.code: 
  %% @private
  %% @doc Chunked data response
  -spec receive_chunk(term(), term()) -> term().
  receive_chunk({'DOWN', _, _, _, _Reason}, _State) ->
      error(incomplete);
  receive_chunk({gun_data, _Pid, StreamRef, IsFin, Data}, State) ->
  
negative.code: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  %% @private
  -spec at_rest(term(), pid(), state()) ->
      {stop, {error, any()}, atom(), state()} |
      {next_state, atom(), state(), timeout()}.
  at_rest(Event, From, State) ->
      enqueue_work_or_stop(at_rest, Event, From, State).
  
  