anchor.diff:        erl_syntax:atom(RecordName),
         [erl_syntax:record_field(erl_syntax:atom(FName), ValueSyntaxTree)
          || {FName, ValueSyntaxTree} <- FieldsValueTrees]).
  -
  -record_access(Var, RecordName, FieldName) ->
  -    erl_syntax:record_access(Var,
  -                             erl_syntax:atom(RecordName),
  -                             erl_syntax:atom(FieldName)).
   
   %% maps
   map_match(Fields) ->
  
positive.code:               MsgVar,
                MsgName,
                [begin
                     FieldAccess = mapping_access(MsgVar, MsgName, FName, Opts),
                     FValueExpr = ?expr(lists:reverse('<Param>'),
                                        [replace_tree('<Param>', FieldAccess)]),
                     {FName, FValueExpr}
                 end
                 || #field{name=FName, occurrence=repeated} <- MsgDef],
               Opts)
      end.
  
  format_field_decoders(MsgName, MsgDef, AnRes, Opts) ->
  
negative.code:                         || {FName, Val} <- map_kvalues(FieldsValueTrees)],
                         ", ")])).
  
  %% -> [{atom(), string()}]
  map_kvars(KVars) ->
      [{Key, var_literal(Var)} || {Key, Var} <- KVars].
  