anchor.diff:         ) ->
                           no_return().
   %%
  -enter_loop(Mod, Options, State) ->
  +enter_loop(Mod, Options, State) when is_atom(Mod) andalso is_list(Options) ->
       enter_loop(Mod, Options, State, self(), infinity).
   
   -spec enter_loop(
  
positive.code: 	{ok, {reply, Reply, NState}} ->
  	    reply(From, Reply),
  	    loop(Parent, Name, NState, Mod, infinity, HibernateAfterTimeout, []);
  	{ok, {reply, Reply, NState, Time1}} ->
  	    reply(From, Reply),
  	    loop(Parent, Name, NState, Mod, Time1, HibernateAfterTimeout, []);
  	{ok, {noreply, NState}} ->
  	    loop(Parent, Name, NState, Mod, infinity, HibernateAfterTimeout, []);
  	{ok, {noreply, NState, Time1}} ->
  	    loop(Parent, Name, NState, Mod, Time1, HibernateAfterTimeout, []);
  	{ok, {stop, Reason, Reply, NState}} ->
  	    try
  		terminate(Reason, ?STACKTRACE(), Name, From, Msg, Mod, NState, [])
  
negative.code: 	    Debug1 = sys:handle_debug(Debug, fun print_event/3, Name,
  				      {noreply, NState}),
  	    loop(Parent, Name, NState, Mod, infinity, HibernateAfterTimeout, Debug1);
  	{ok, {noreply, NState, TimeoutOrHibernate}} when ?is_timeout(TimeoutOrHibernate) orelse TimeoutOrHibernate =:= hibernate ->
  	    Debug1 = sys:handle_debug(Debug, fun print_event/3, Name, {noreply, NState}),
  	    loop(Parent, Name, NState, Mod, TimeoutOrHibernate, HibernateAfterTimeout, Debug1);
  	{ok, {noreply, NState, {continue, _}=Continue}} ->
  	    Debug1 = sys:handle_debug(Debug, fun print_event/3, Name, {noreply, NState}),
  	    loop(Parent, Name, NState, Mod, Continue, HibernateAfterTimeout, Debug1);
  	{ok, {stop, Reason, NState}} ->
  	    terminate(Reason, ?STACKTRACE(), Name, From, Msg, Mod, NState, Debug);
  	{'EXIT', Class, Reason, Stacktrace} ->
  