anchor.diff:  f(F, A) ->
       io_lib:format(F, A).
   
  +%% Rewrites for instance ['.','m1','.',m2] into 'm1.m2'
  +%% Example: {{msg,['.','m1','.',m2]}, [#field{type=['.','m1','.',m3]}]}
  +%% becomes: {{msg,'m1.m2'},           [#field{type='m1.m3'}]}
  +%%
  +%% Prerequisites:
   %% `Defs' is expected to be absolutified and flattened
   reformat_names(Defs) ->
       lists:map(fun({{msg,Name}, Fields}) ->
  
positive.code:       end,
        RPCs).
  
  %% `Defs' is expected to be absolutified
  flatten_defs(Defs) ->
      lists:reverse(
  
negative.code:               end,
                RPCs).
  
  %% For a field, such as f1 of type x, in "message m1 { required x f1 = 1 }",
  %% resolve_refs resolves the type of x to either {enum,x} or {msg,x}.
  %% It replaces #field{type={ref,X}} with e.g. #field{type={msg,x}} accordingly.
  %%
  %% Prerequisites:
  %% `Defs' is expected to be flattened and may or may not be reformatted
  %% `Defs' is expected to be verified, to have no dangling references
  resolve_refs(Defs) ->
  