anchor.diff:  	{ $b, Rest }; 
   format(<< $f, Rest/binary>>) ->
   	{ $b, Rest }; 
  -format(<< $c, _Int:8, Rest/binary>>) ->
  +format(<< $c, _Int:8/signed, Rest/binary>>) ->
   	{ $c, Rest };
  -format(<< $C, _Int:8, Rest/binary>>) ->
  +format(<< $C, _Int:8/unsigned, Rest/binary>>) ->
   	{ $C, Rest };
   format(<< $w, _Int:16/big-integer, Rest/binary>>) ->
   	{ $w, Rest };
  
positive.code: 	L = size(String),
  	<< L:16/big-unsigned-integer, String/binary >>;
  data(Int) when is_integer(Int), Int >= -128, Int < 128 ->
  	<< Int:8 >>;
  data(Int) when is_integer(Int), Int >= 0, Int < 256 ->
  	<< Int:8 >>;
  data(Int) when is_integer(Int), Int >= -32768, Int < 32768 ->
  	<< Int:16/big-integer >>;
  data(Int) when is_integer(Int), Int >= 0, Int < 65536 ->
  
negative.code: 	extract(Rest, T, [ extract_object(Object,S,[]) | Acc ]).
  
  extract_object(<<>>, _, Acc ) ->
  	{ lists:reverse(Acc), <<>>, [] };
  extract_object(_, [], Acc ) ->
  	{ lists:reverse(Acc), <<>>, [] };
  extract_object(<<Len:16/big-unsigned-integer,Key:Len/binary,Value/binary>>, [ Tag | T ], Acc) ->
  	{ [ V ], Rem, _ } = extract(Value, [ Tag ], []),
  	extract_object(Rem, T, [ { Key, V } | Acc ]).
  