anchor.diff:  %% return http request
   -spec(request/1 :: (#http{}) -> list()).
   
  -request(#http{htline={A, B}, headers=C}) ->
  -   {A, B, C}.
  +request(#http{htline={Method, Path}, headers=Head}) ->
  +   {Method, Path, Head}.
  +
  +%%
  +%% return http response
  +-spec(response/1 :: (#http{}) -> {integer(), [header()]}).
  +
  +response(#http{htline=Code, headers=Head}) ->
  +   {Code, Head}.
   
   %%
   %% return number of processed packets
  
positive.code: %status(303) -> <<"303 See Other">>;
  %status(304) -> <<"304 Not Modified">>;
  %status(307) -> <<"307 Temporary Redirect">>;
  encode_status(badarg) -> encode_status(400);
  encode_status(unauthorized) -> encode_status(401);
  %status(402) -> <<"402 Payment Required">>;
  encode_status(forbidden) -> encode_status(403);
  encode_status(not_found) -> encode_status(404);
  encode_status(not_allowed)    -> encode_status(405);
  encode_status(not_acceptable) -> encode_status(406);
  %status(407) -> <<"407 Proxy Authentication Required">>;
  %status(408) -> <<"408 Request Timeout">>;
  encode_status(conflict) -> encode_status(409);
  encode_status(duplicate)-> encode_status(409);
  %status(410) -> <<"410 Gone">>;
  %status(411) -> <<"411 Length Required">>;
  %status(412) -> <<"412 Precondition Failed">>;
  %status(413) -> <<"413 Request Entity Too Large">>;
  %status(414) -> <<"414 Request-URI Too Long">>;
  encode_status(bad_mime_type) -> encode_status(415);
  %status(416) -> <<"416 Requested Range Not Satisfiable">>;
  %status(417) -> <<"417 Expectation Failed">>;
  %status(422) -> <<"422 Unprocessable Entity">>;
  encode_status(not_implemented) -> encode_status(501);
  %status(502) -> <<"502 Bad Gateway">>;
  encode_status(not_available) -> encode_status(503);
  %status(504) -> <<"504 Gateway Timeout">>;
  %status(505) -> <<"505 HTTP Version Not Supported">>.
  encode_status(_) -> encode_status(500).
  
  
  %%%------------------------------------------------------------------
  
negative.code: encode_status(502) -> <<"502 Bad Gateway">>;
  encode_status(503) -> <<"503 Service Unavailable">>;
  encode_status(504) -> <<"504 Gateway Timeout">>;
  encode_status(505) -> <<"505 HTTP Version Not Supported">>.
  
  %encode_status(100) -> <<"100 Continue">>;
  %encode_status(101) -> <<"101 Switching Protocols">>;
  http_status(X) when is_integer(X) -> X;
  http_status(ok)       -> 200;
  http_status(created)  -> 201;
  http_status(accepted) -> 202;
  %status(203) -> <<"203 Non-Authoritative Information">>;
  http_status(no_content) -> 204;
  %status(205) -> <<"205 Reset Content">>;
  %status(206) -> <<"206 Partial Content">>;
  %status(300) -> <<"300 Multiple Choices">>;
  