anchor.diff:  %% In your module you need to specify the behavior `syn_event_handler' and implement the callbacks.
   %% All callbacks are optional, so you just need to define the ones you need.
   %%
  -%% All of the callbacks, except for `resolve_registry_conflict/3', are called on all the nodes of the cluster.
  +%% All of the callbacks, except for `resolve_registry_conflict/4', are called on all the nodes of the cluster.
   %% This allows you to receive events for the processes running on nodes that get shut down, or in case of net splits.
   %%
   %% The argument `Reason' in the callbacks can be:
  
positive.code: 
  -optional_callbacks([on_process_registered/5, on_registry_process_updated/5, on_process_unregistered/5]).
  -optional_callbacks([on_process_joined/5, on_group_process_updated/5, on_process_left/5]).
  -optional_callbacks([resolve_registry_conflict/3]).
  
  %% ===================================================================
  %% API
  %% ===================================================================
  %% @private
  -spec ensure_event_handler_loaded() -> module().
  ensure_event_handler_loaded() ->
      %% get handler
      CustomEventHandler = get_custom_event_handler(),
      %% ensure that is it loaded (not using code:ensure_loaded/1 to support embedded mode)
      catch CustomEventHandler:module_info(exports).
  
  %% @private
  -spec call_event_handler(
  
negative.code: ) -> any().
  
  -callback resolve_registry_conflict(
      Scope :: atom(),
      Name :: term(),
      {Pid1 :: pid(), Meta1 :: term(), Time1 :: non_neg_integer()},
      {Pid2 :: pid(), Meta2 :: term(), Time2 :: non_neg_integer()}
  