anchor.diff:  main([OutputDir]) ->
   
       %% Collect and check erlang configuration
  -    check_nif_version(),
  +    Version = get_nif_version(),
  +    check_version(Version),
  +
       Wordsize = erlang:system_info(wordsize),
       HasDirtySchedulers = case catch erlang:system_info(dirty_cpu_schedulers) of
                                _X when is_integer(_X) -> true;
  
positive.code: 
  
  %% gen_api
  
  %% The NIF version that this branch is coded for.
  -define(NIF_MAJOR_VERSION, 2).
  -define(NIF_MINOR_VERSION, 7).
  
  
  -define(NIF_VERSION_STRING, "2.7").
  
  %% The Erlang version this branch is coded for.  This is only used for build
  %% error messages to help the user find the right branch.
  -define(ERLANG_VERSION_STRING, "17.4").
  
  %% api_list
  %%
  
negative.code: 
      ok.
  
  
  emit_nif_version({Major, Minor}, OutputDir) ->
      Filename = filename:join(OutputDir, "nif_versions.snippet"),
      Data = [io_lib:format("pub const NIF_MAJOR_VERSION: c_int = ~p;\n", [Major]),
              io_lib:format("pub const NIF_MINOR_VERSION: c_int = ~p;\n", [Minor])],
  
      file:write_file(Filename, Data).
  
  
  % emit_type_aliases({2,7}) ->
  %     Filename = filename:join(OutputDir, "nif_type_aliases.snippet"),
  %     Data = [],
  %     file:write_file(Filename, Data).
  
  %% When ABIs diverge we can add things like "type ErlNifBinary = ErlNifBinary_2_7;"
  
  
  emit_unix_bindings(Entries, OutputDir) ->
  