anchor.diff:  replay_prefix_aux([#trace_state{done = [Event|_], index = I}|Rest], State) ->
     #scheduler_state{logger = _Logger, print_depth = PrintDepth} = State,
     ?trace(_Logger, "~s~n", [?pretty_s(I, Event)]),
  -  {ok, NewEvent} = get_next_event_backend(Event, State),
  +  {ok, #event{actor = Actor} = NewEvent} = get_next_event_backend(Event, State),
     try
       true = Event =:= NewEvent
     catch
  
positive.code:             catch
                _:_ ->
                  #scheduler_state{print_depth = PrintDepth} = State,
                  Reason =
                    {replay_mismatch, I, Event, element(2, NewEvent), PrintDepth},
                  ?crash(Reason)
  
negative.code:     end,
    count_delay(Rest, Actor, NN).
  
  free_schedule(Event, [{Channel, Queue}|_], State) ->
    %% Pending messages can always be sent
    MessageEvent = queue:get(Queue),
    UpdatedEvent = Event#event{actor = Channel, event_info = MessageEvent},
    {ok, FinalEvent} = get_next_event_backend(UpdatedEvent, State),
    update_state(FinalEvent, State);
  free_schedule(Event, [P|ActiveProcesses], State) ->
    case get_next_event_backend(Event#event{actor = P}, State) of
      retry -> free_schedule(Event, ActiveProcesses, State);
      {ok, UpdatedEvent} -> update_state(UpdatedEvent, State)
    end;
  free_schedule(_Event, [], State) ->
    %% Nothing to do, trace is completely explored
    #scheduler_state{
       current_warnings = Warnings,
  