anchor.diff:  		      Postpone, Hibernate, Timeout,
   		      [{Type,Content}|NextEvents]);
   		false ->
  -		    NewS =
  -			S#{state := State, data := NewData, postponed := P},
  -		    Q = [Event|Events],
  -		    ?TERMINATE(
  -		       error, {bad_action,Action}, Debug, NewS, Q)
  +		    terminate(
  +		      error, {bad_action,Action}, ?STACKTRACE(),
  +		      Debug, S, [Event|Events], State, NewData, P)
   	    end;
   	%% Actions that set options
   	{postpone,NewPostpone} when is_boolean(NewPostpone) ->
  
positive.code: 	      State, NewData, P, Event, NextState, Actions,
  	      Postpone, NewHibernate, Timeout, NextEvents);
  	{hibernate,_} ->
  	    NewS = S#{state := State, data := NewData, postponed := P},
  	    Q = [Event|Events],
  	    ?TERMINATE(
  	       error, {bad_action,Action}, Debug, NewS, Q);
  	hibernate ->
  	    loop_event_actions(
  	      Parent, Debug, S, Events,
  
negative.code: %%% State Machine engine implementation of proc_lib/gen server
  
  %% Server loop, consists of all loop* functions
  %% and detours through sys:handle_system_message/7 and proc_lib:hibernate/3
  
  %% Entry point for system_continue/3
  loop(Parent, Debug, #{hibernate := Hibernate} = S) ->
  