anchor.diff:  %% update(FieldName, Fun, Record) is equivalent to
   %% set(FieldName, Fun(get(FieldName,Record)), Record),
   %% but faster.
  --spec update(string(), function(), avro_value()) -> avro_value().
  -
  +-spec update(string(), function(), avro_value()) ->
  +        avro_value() | no_return().
   update(FieldName, Fun, Record) ->
     Data = ?AVRO_VALUE_DATA(Record),
     ok = ?ASSERT_AVRO_VALUE(Data),
  
positive.code:   set_values(Values, Record).
  
  %% Set values for multiple fields in one call
  -spec set_values([{string(), any()}], avro_value()) -> avro_value() | no_return().
  
  set_values(Values, Record) ->
    lists:foldl(
      fun({FieldName, Value}, R) ->
  
negative.code:   set_value(FieldName, Value, Record).
  
  %% Set value for the specified field
  -spec set_value(string(), avro_value(), avro_value()) ->
          avro_value() | no_return().
  set_value(FieldName, Value, Record) when ?AVRO_IS_RECORD_VALUE(Record) ->
    Data = ?AVRO_VALUE_DATA(Record),
    ok = ?ASSERT_AVRO_VALUE(Data),
  