anchor.diff:                  case lists:member(is_record, Opts) of
                       true ->
                           {{FNum, V}, R} = protobuffs:decode(Bytes, bytes),
  -                        RecVal = decode(list_to_atom(string:to_lower(atom_to_list(Type))), V),
  +                        RecVal = decode(Type, V),
                           {RecVal, R};
                       false ->
                           case lists:member(repeated_packed, Opts) of
  
positive.code:                 case lists:member(is_record, Opts) of
                      true ->
                          {{FNum, V}, R} = protobuffs:decode(Bytes, bytes),
                          RecVal = decode(list_to_atom(string:to_lower(atom_to_list(Type))), V),
                          {RecVal, R};
                      false ->
                          case lists:member(repeated_packed, Opts) of
  
negative.code:     Index = list_index(Field, Fields),
      erlang:setelement(Index+1, Record, Value).
  
  list_index(Target, List) ->  list_index(Target, List, 1).
  
  list_index(Target, [Target|_], Index) -> Index;
  list_index(Target, [_|Tail], Index) -> list_index(Target, Tail, Index+1);
  