anchor.diff:  	extract(Rest, T, [ extract_object(Object,S,[]) | Acc ]).
   
   extract_object(<<>>, _, Acc ) ->
  -	lists:reverse(Acc);
  +	{ lists:reverse(Acc), <<>>, [] };
   extract_object(_, [], Acc ) ->
  -	lists:reverse(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 ]).
  
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, [ true | Acc ]);  
  extract(<<$f, Rest/binary>>, [ $b | T ], Acc ) ->
  	extract(Rest,T, [ false | Acc ]);
  extract(<<Int:8/signed-integer, Rest/binary>>, [ $c | T ], Acc ) ->
  	extract(Rest, T, [ Int | Acc ]);
  extract(<<Int:8/unsigned-integer, Rest/binary>>, [ $C | T ], Acc ) ->
  	extract(Rest, T, [ Int | Acc ]);
  extract(<<Int:16/big-integer, Rest/binary>>, [ $w | T ], Acc ) ->
  	extract(Rest, T, [ Int | Acc ]);
  