anchor.diff:      Lines = binary:split(Headers2, <<"\r\n">>, [global]),
       lists:reverse(lists:foldl(fun (Bin, List) -> fold_header(Bin, List) end, [], Lines)).
   
  -%% @doc Convert header name and value into the binary
  +%% @doc Formats headers into the binary
  +%%
  +%% For supported header representations, see {@link parse/2}/{@link format/2} functions. 
   %% @end
   -spec format_headers([{atom() | binary(), binary() | term()}]) -> binary().
   format_headers(Headers) ->
  
positive.code: %% Header parsing/format functions
  %%-----------------------------------------------------------------
  
  parse(Name, Bin) -> process(p, Name, Bin).
  
  %% @doc Format header value into the binary.
  %% @end
  format(Name, [Value]) -> process(f, Name, Value);
  
negative.code: process(pn, <<"e">>, _Ignore) -> 'content-encoding';
  process(fn, 'content-encoding', _Ignore) -> <<"Content-Encoding">>;
  process(p, 'content-encoding', Bin) ->
      {EncodingBin, Rest} = sip_binary:parse_token(Bin),
      Encoding = sip_binary:binary_to_existing_atom(sip_binary:to_lower(EncodingBin)),
      parse_list('content-encoding', Encoding, Rest);
  
  process(f, 'content-encoding', Encoding) ->
      sip_binary:any_to_binary(Encoding);
  
  %% 20.13 Content-Language
  %% http://tools.ietf.org/html/rfc3261#section-20.13
  