anchor.diff:  
   %% Types
   -type qs()               :: [{binary(), binary() | true}].
  --type headers()          :: headers().
  +-type headers()          :: [{binary(), iodata()}].
   -type request_options()  :: map().
  +-type status()           :: 100..999.
  +-type head_handler()     :: fun((fin | nofin, status(), headers()) -> any()).
   -type body_handler()     :: fun((binary(), fin | nofin, any()) -> any()).
  --type response_handler() :: fun((100..999, headers(), iodata()) -> iodata()).
  -
  --export_type([qs/0, headers/0, request_options/0, response_handler/0]).
  +-type response_handler() :: fun((status(), headers(), iodata()) -> iodata()).
  +
  +-export_type([qs/0, headers/0, status/0, request_options/0, response_handler/0]).
   
   %% =============================================================================
   %% API
  
positive.code: 
  -spec await(pid(), reference(), non_neg_integer(), reference(), response_handler()) -> any().
  await(Pid, Ref, Timeout, Mref, Handle) ->
  	receive
  		{gun_response, Pid, Ref, nofin, Status, Headers} ->
  			Data = await_body(Pid, Ref, Timeout, Mref),
  			Handle(Status, Headers, Data);
  		{gun_response, Pid, Ref, fin, Status, Headers} ->
  			demonitor(Mref, [flush]),
  			gun:flush(Ref),
  			Handle(Status, Headers, <<>>);
  		{gun_error, Pid, Ref, Reason} ->
  			demonitor(Mref, [flush]),
  			gun:flush(Ref),
  
negative.code: 	delete/7,
  	await/4,
  	await/5,
  	await_head/5,
  	await_body/4,
  	fold_body/6,
  	signature_v2/5,
  