anchor.diff:                    length(Result), '=/=', NumAbort}),
       Result.
   
  --spec handle_crash(pid(), Reason::fd:reason(), state(), on | on_init)
  +-spec handle_crash(pid(), Reason::fd:reason(), Cookie::fd:cookie(), state(), on | on_init)
                     -> state() |
                        {'$gen_component',
                         [{on_handler, fun((comm:message(), state()) -> state())}],
                         state()}.
  -handle_crash(Pid, _Reason, State, Handler) ->
  +handle_crash(Pid, _Reason, _Cookie, State, Handler) ->
       %% tm: update rtms
       %% rtm: take over tx
   
  
positive.code:         false ->
              on(Msg, State)
      end;
  on_init({crash, Pid, Reason, _Cookie}, State) ->
      on_init({crash, Pid, Reason}, State);
  on_init({crash, Pid, Reason}, State) ->
      %% only in tx_tm
      handle_crash(Pid, Reason, State, on_init).
  
  %% functions for periodic RTM updates
  -spec rtm_update_trigger(rtms()) -> ok.
  
negative.code:     state_set_local_snapno(State, SnapNo);
  
  %% failure detector events
  on({crash, Pid, Reason, Cookie}, State) ->
      %% in tx_tm and rtm processes! (rtms subscribe to the tm for running tx)
      ?TRACE_RTM_MGMT("tx_tm_rtm:on({crash,...}) of Pid ~p~n", [Pid]),
      %% in tx_tm and rtm processes! (rtms subscribe to the tm for running tx)
      handle_crash(Pid, Reason, Cookie, State, on);
  %% on({crash, _Pid, _Reason, _Cookie},
  %%    {_RTMs, _TableName, _Role, _LAcceptor, _GLLearner} = State) ->
  %%     ?TRACE("tx_tm_rtm:on:crash of ~p in Transaction ~p~n", [_Pid, binary_to_term(_Cookie)]),
  