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: %% the Windows callback struct keeps proper integrity.  Such functions
  %% must begin with "dummy."
  %%
  api_list(Wordsize, HasDirtySchedulers) -> [
  
      {"*mut c_void", "enif_priv_data", "arg1: *mut ErlNifEnv"},
      {"*mut c_void", "enif_alloc", "size: size_t"},
  
negative.code: 
  
  
  get_nif_version() ->
      Ver = (catch erlang:system_info(nif_version)),
      version_string2tuple(Ver).
  
  version_string2tuple("2.7") -> {2,7};
  version_string2tuple(_) -> unsupported.
  
  check_version(unsupported) ->
          io:format("Unsupported Erlang version.\n"),
          halt(1);
  check_version(Version = {_,_}) -> Version.
  