anchor.diff:  wrap_extensionAdditionGroups([],_,Acc,_,_) ->
       lists:reverse(Acc).
   
  -value_match(Index,Value) when is_atom(Value) ->
  -    value_match(Index,atom_to_list(Value));
  -value_match([],Value) ->
  +value_match(_Gen, [], Value) ->
       Value;
  -value_match([{VI,_}|VIs],Value) ->
  -    value_match1(Value,VIs,lists:concat(["element(",VI,","]),1).
  -value_match1(Value,[],Acc,Depth) ->
  -    Acc ++ Value ++ lists:concat(lists:duplicate(Depth,")"));
  -value_match1(Value,[{VI,_}|VIs],Acc,Depth) ->
  -    value_match1(Value,VIs,Acc++lists:concat(["element(",VI,","]),Depth+1).
  +value_match(Gen, [{VI,_}|VIs], Value0) ->
  +    Value = value_match(Gen, VIs, Value0),
  +    lists:concat(["element(",VI,", ",Value,")"]).
   
   enc_dig_out_value(_Gen, [], Value) ->
       {[],Value};
  
positive.code:     RestGroup = {group,[{safe,EmitObjSets},{safe,EmitPack}]},
      [EmitExt,EmitOpt|EmitComp++[RestGroup]].
  
  gen_dec_objsets_fun(Erule, ObjSetInfo) ->
      fun({AccTerm,AccBytes}) ->
              {_,_UniqueFName,ValueIndex} = ObjSetInfo,
              case {AccTerm,AccBytes} of
  
negative.code:                 {_,[]} ->
                      ok;
                  {[{ObjSet,LeadingAttr,Term}],ListOfOpenTypes} ->
                      ValueMatch = value_match(Gen, ValueIndex, Term),
                      _ = [begin
                               gen_dec_open_type(Gen, ValueMatch, ObjSet,
                                                 LeadingAttr, T),
                               emit([com,nl])
                           end || T <- ListOfOpenTypes],
  