anchor.diff:  	  TimerRefs_2, TimerTypes_2, TimeoutEvents, Events_2R),
       NewEvents = lists:reverse(Events_3R),
       loop_events(
  -      Parent, NewDebug, S, NewTimerRefs, NewTimerTypes,
  +      Parent, NewDebug, S, NewTimerRefs, NewTimerTypes, NewCancelTimers,
         NewEvents, Hibernate, NextState, NewData, NewP).
   
   %% Loop until out of enqueued events
   %%
   loop_events(
  -  Parent, Debug, S, TimerRefs, TimerTypes,
  +  Parent, Debug, S, TimerRefs, TimerTypes, CancelTimers,
     [] = _Events, Hibernate, State, Data, P) ->
       %% Update S and loop back to loop/3 to receive a new event
       NewS =
  
positive.code: 	  state := State,
  	  data := Data,
  	  postponed := P,
  	  timer_refs => TimerRefs,
  	  timer_types => TimerTypes,
  	  hibernate => Hibernate},
      loop(Parent, Debug, NewS);
  loop_events(
    Parent, Debug, S, TimerRefs, TimerTypes,
    [Event|Events], Hibernate, State, Data, P) ->
      %% Update S and continue with enqueued events
      NewS =
  
negative.code: 			end,
  		    loop_receive_result(
  		      Parent, Debug, S,
  		      TimerRefs, TimerTypes, CancelTimers, Event)
  	    end
      end.
  
  loop_receive_result(
    Parent, Debug, #{state := State} = S,
    TimerRefs, TimerTypes, CancelTimers, Event) ->
      %% The field 'hibernate' is now invalid in state map S
      %% - it will be recalculated and restored when we return to loop/3
      %%
      NewDebug = sys_debug(Debug, S, State, {in,Event}),
      %% Here the queue of not yet handled events is created
      Events = [],
      Hibernate = false,
      loop_event(
        Parent, NewDebug, S, TimerRefs, TimerTypes, CancelTimers,
        Events, Event, Hibernate).
  
  %% Entry point for handling an event, received or enqueued
  loop_event(
    Parent, Debug, #{state := State, data := Data} = S,
    TimerRefs, TimerTypes, CancelTimers,
    Events, {Type,Content} = Event, Hibernate) ->
      %%
      %% If Hibernate is true here it can only be
  