anchor.diff:  decode(<<>>, _, Acc) -> Acc;
   decode(Bytes, Types, Acc) ->
       {ok, FNum} = protobuffs:next_field_num(Bytes),
  -    case lists:keysearch(FNum, 1, Types) of
  -        {value, {FNum, Name, Type, Opts}} ->
  +    case lists:keyfind(FNum, 1, Types) of
  +        {FNum, Name, Type, Opts} ->
               {Value1, Rest1} =
                   case lists:member(is_record, Opts) of
                       true ->
  
positive.code: decode_extensions(_Types, [], Acc) ->
      dict:from_list(Acc);
  decode_extensions(Types, [{Fnum, Bytes} | Tail], Acc) ->
      NewAcc = case lists:keysearch(Fnum, 1, Types) of
          {value, {Fnum, Name, Type, Opts}} ->
              {Value1, Rest1} =
                  case lists:member(is_record, Opts) of
                      true ->
  
negative.code: 		                decode(Rest1, Types, [{FNum, Name, int_to_enum(Type,Value1)}|Acc])
              end;
          false ->
              case lists:keyfind('$extensions', 2, Acc) of
                  {_,_,Dict} ->
                      {{FNum, _V}, R} = protobuffs:decode(Bytes, bytes),
                      Diff = size(Bytes) - size(R),
                      <<V:Diff/binary,_/binary>> = Bytes,
  