anchor.diff:  %%   IO-monad: http 
   -module(m_http).
   -compile({parse_transform, category}).
  +-compile({parse_transform, monad}).
   
   -include("knet.hrl").
   -include_lib("datum/include/datum.hrl").
  
positive.code: send(Sock, State) ->
     Mthd = lens:get(method(), State),   
     Url  = lens:get(uri(), State),
     Head = lens:get(header(), State),
     knet:send(Sock, {Mthd, Url, Head}),
     [$?|| lens:get(payload(), State), knet:send(Sock, _)],
     knet:send(Sock, eof).
  
  %%
  %%
  
negative.code: 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) ->
     m_state:put(header(scalar:atom(Head)), Value).
  
  
  %%
  %%
  