anchor.diff:  
   build_identifier({ _, Line, Identifier }, Args) ->
     { Identifier, Line, build_args(Args) }.
  +
  +% Sort key-values
  +
  +sort_kv(List) -> lists:sort(fun sort_kv/2, List).
  +sort_kv({ '{}', _, [A,_] }, { '{}', _, [B,_] }) -> A =< B.
   
   % Merge key-value pairs from args and blocks
   
  
positive.code: 
  % KV and orddict
  
  base_orddict -> kv_comma : { '[:]', ?line(hd('$1')), lists:sort('$1') }.
  
  kv_comma -> kv_eol expr : [{'{}',?line('$1'),[?exprs('$1'),'$2']}].
  kv_comma -> kv_eol expr comma_separator kv_comma : [{'{}',?line('$1'),[?exprs('$1'),'$2']}|'$4'].
  
negative.code: % in the existing one. Except list, everything should depend
  % on call_args.
  
  list_args -> kv_comma : sort_kv('$1').
  list_args -> expr : ['$1'].
  list_args -> expr comma_separator call_args : ['$1'|'$3'].
  
  