anchor.diff:              -> S;
           _
               -> S#state{keep_alive_ref = reset_timer(TimeOut,Ref)}
  -    end
  -.
  -
  -reset_timer(Ref,TimeOut) ->
  -    if Ref =/= undefned ->
  -        timer:cancel(Ref);
  +    end.
  +
  +reset_timer({TRef,_},TimeOut) ->
  +    if TRef =/= undefned ->
  +        timer:cancel(TRef);
           true -> ok
       end,
       set_keep_alive_timer(TimeOut).
  
positive.code: %% SESSION interaction
  %%%===================================================================
  
  register_self(_ClientId,_CleanSession) ->
      %%mqtt_registration_repo:register(self(),ClientId)
      ok.
  
  unregister_self(_ClientId,_CleanSession) ->
      %%mqtt_registration_repo:unregister(self(),ClientId).
      ok.
  
  %% =================================================
  
negative.code: handle_info(connect_timeout, S = #state{connect_state = connecting}) ->
      prevent_connection(S,timeout);
  
  handle_info({keep_alive_timeout,MatchRef}, S = #state{ keep_alive_ref = {_,MatchRef}}) ->
      error_logger:info_msg("Connection timed out ~p",[MatchRef]),
      abort_connection(S,timeout);
  
  handle_info(_Info, State) ->
  