anchor.diff:  		{error, Reason} -> {error, Reason}
   	end.
   
  --spec stream_body_recv(#http_req{})
  -	-> {ok, binary(), #http_req{}} | {error, atom()}.
  +-spec stream_body_recv(Req)
  +	-> {ok, binary(), Req} | {error, atom()} when Req::req().
   stream_body_recv(Req=#http_req{
   		transport=Transport, socket=Socket, buffer=Buffer}) ->
   	%% @todo Allow configuring the timeout.
  
positive.code: %% This essentially removes the host, path, query string, bindings and headers.
  %% Use it when you really need to save up memory, for example when having
  %% many concurrent long-running connections.
  -spec compact(#http_req{}) -> #http_req{}.
  compact(Req) ->
  	Req#http_req{host=undefined, host_info=undefined, path=undefined,
  		path_info=undefined, qs_vals=undefined,
  
negative.code: 		{error, Reason} -> {error, Reason}
  	end.
  
  -spec transfer_decode(binary(), Req)
  	-> {ok, binary(), Req} | {error, atom()} when Req::req().
  transfer_decode(Data, Req=#http_req{
  		body_state={stream, TransferDecode, TransferState, ContentDecode}}) ->
  	case TransferDecode(Data, TransferState) of
  