anchor.diff:  h(Head, Value) ->
      header(Head, Value).
   
  +header(Head, Value)
  + when is_list(Value) ->
  +   % @todo: htstream works only with atoms, we need to fix library
  +   m_state:put(header(scalar:atom(Head)), scalar:s(Value));
  +
   header(Head, Value) ->
  -   % @todo: htstream works only with atoms, we need to fix library
  -   m_state:put(header(scalar:atom(Head)), scalar:s(Value)).
  +   m_state:put(header(scalar:atom(Head)), Value).
  +
   
   %%
   %%
  
positive.code:    payload(Value).
  
  payload(Value) ->
     m_state:put(payload(), Value).
  
  %%
  %%
  
negative.code: send(Sock, State) ->
     Mthd = lens:get(method(), State),   
     Url  = lens:get(uri(), State),
     Head = head(State),
  io:format("=> ~p~n", [Head]),
     knet:send(Sock, {Mthd, Url, Head}),
     [$?|| lens:get(payload(), State), knet:send(Sock, _)],
     knet:send(Sock, eof).
  
  %%
  %% 
  head(State) ->
     [$.||
        lens:get(header(), State),
        head_connection(_),
        head_te(payload(), _)
     ].
  
  head_connection(Head) ->
     case lens:get(lens:pair('Connection', ?NONE), Head) of
        ?NONE ->
           [{'Connection', <<"close">>}|Head];
        _     ->
           Head
     end.
  
  head_te(undefined, Head) ->
     Head;
  head_te(_, Head) ->
     case lens:get(lens:pair('Transfer-Encoding', ?NONE), Head) of
        ?NONE ->
           [{'Transfer-Encoding', <<"chunked">>}|Head];
        _     ->
           Head
     end.
  
  
  %%
  %%
  