anchor.diff:  	    gen:unregister_name(ServerRef),
   	    proc_lib:init_ack(Starter, ignore),
   	    exit(normal);
  -	Other ->
  -	    Error = {bad_return_value,Other},
  +	_ ->
  +	    Error = {bad_return_value,Result},
   	    proc_lib:init_ack(Starter, {error,Error}),
   	    exit(Error)
       end.
  
positive.code: init_result(Starter, Parent, ServerRef, Module, Result, Opts) ->
      case Result of
  	{CallbackMode,State,Data} ->
  	    proc_lib:init_ack(Starter, {ok,self()}),
  	    enter(
  	      Module, Opts, CallbackMode, State, Data,
  	      ServerRef, [], Parent);
  	{CallbackMode,State,Data,Actions} ->
  	    proc_lib:init_ack(Starter, {ok,self()}),
  	    enter(
  	      Module, Opts, CallbackMode, State, Data,
  	      ServerRef, Actions, Parent);
  	{stop,Reason} ->
  	    gen:unregister_name(ServerRef),
  	    proc_lib:init_ack(Starter, {error,Reason}),
  
negative.code:     end.
  
  %% Here init_it/6 and enter_loop/5,6,7 functions converge
  enter(Module, Opts, CallbackMode, State, Data, Server, Actions, Parent) ->
      %% The values should already have been type checked
      Name = gen:get_proc_name(Server),
      Debug = gen:debug_options(Name, Opts),
      OldState = make_ref(), % Will be discarded by loop_event_actions/9
      NewActions =
  	if
  	    is_list(Actions) ->
  		Actions ++ [{postpone,false}];
  	    true ->
  		[Actions,{postpone,false}]
  	end,
      S =	#{
        callback_mode => CallbackMode,
        module => Module,
        name => Name,
        state => OldState,
        data => Data,
        timer => undefined,
        postponed => [],
        hibernate => false},
      loop_event_actions(
        Parent, Debug, S, [],
        {event,undefined}, % Will be discarded thanks to {postpone,false}
        OldState, State, Data, NewActions).
  
  %%%==========================================================================
  %%%  gen callbacks
  