anchor.diff:  lens_socket_peername() ->
      lens:c([lens:tuple(#fsm.socket), lens:tuple(#socket.peername)]).
   
  +lens_http_socket_peername() ->
  +   lens:c([lens:tuple(#http.state), lens_socket_peername()]).
  +
  +
   
   %%
   %%
  
positive.code: %%
  %%
  -record(fsm, {
     socket = undefined :: #socket{}       %% http i/o streams
    ,queue  = undefined :: datum:q()       %% queue of in-flight request
    ,trace  = undefined :: pid()        %% knet stats function
  }).
  
  
negative.code:    Upgrade = lens:get(lens:pair('Upgrade'), Head),
     ?access_http(#{
        req  => {upgrade, Upgrade}
       ,peer => lens:get(lens_http_socket_peername(), Http)
       ,addr => request_url(Url, Head)
       ,ua   => opts:val('User-Agent', undefined, Head)
     }),
  