anchor.diff:  %% internally used
   -export([main_in_separate_vm/1]).
   
  +%% Translators for without user-data
   -export([any_e_atom/1, any_d_atom/1, any_m_atom/2, any_v_atom/2]).
  +%% Translators for user-data
  +-export([any_e_atom/2, any_d_atom/2, any_m_atom/3, any_v_atom/3]).
   
   %% Include a bunch of tests from gpb_tests.
   %% The shared tests are for stuff that must work both
  
positive.code:                          m),
      unload_code(M).
  
  default_merge_callback_for_repeated_Any_test() ->
      %% A merge callback for a google.protobuf.Any that is repeated,
      %% is not needed
  
negative.code:     if is_atom(A) -> ok;
         true -> ErrorF(not_an_atom)
      end.
  
  %% Translators/callbacks for user-data
  any_e_atom(A, Fn) -> call_tr_userdata_fn(Fn, any_e_atom(A)).
  any_d_atom(Any, Fn) -> call_tr_userdata_fn(Fn, any_d_atom(Any)).
  any_m_atom(A1, A2, Fn) -> call_tr_userdata_fn(Fn, any_m_atom(A1, A2)).
  any_v_atom(A, ErrorF, Fn) -> call_tr_userdata_fn(Fn, any_v_atom(A, ErrorF)).
  
  call_tr_userdata_fn(Fn, Result) ->
      Fn(Result),
      Result.
  
  %% --- misc ----------
  
  