anchor.diff:  
   new(Uri, SOpt) ->
      fun(State) ->
  -      [Uri|State#{http => #request{uri = uri:new(Uri), so = SOpt}}]
  +      [Uri|State#{request => #http_request{uri = uri:new(Uri), so = SOpt}}]
      end.
   
   %%
  
positive.code: 
  %%%----------------------------------------------------------------------------   
  %%%
  %%% http environment
  %%%
  %%%----------------------------------------------------------------------------
  
  uri() ->
     lens:c(lens:at(http), lens:ti(#request.uri)).
  
  method() ->
     lens:c(lens:at(http), lens:ti(#request.method)).
  
  header(Head) ->
     lens:c(lens:at(http), lens:ti(#request.headers), lens:pair(Head, ?None)).
  
  header() ->
     lens:c(lens:at(http), lens:ti(#request.headers)).
  
  payload() ->
     lens:c(lens:at(http), lens:ti(#request.payload)).
  
  so() ->
     lens:c(lens:at(http), lens:ti(#request.so)).
  
  %%%----------------------------------------------------------------------------   
  %%%
  
negative.code: 
  %%
  %% request data type
  -record(http_request, {
     uri     = ?None    :: _,
     method  = 'GET'    :: _,
     headers = []       :: _,
     content = ?None    :: _,
     so      = []       :: _
  }).
  
  