anchor.diff:                           S2
                    end,
               S4 = resend_or_reset(S3),
  -            {reply, ok, opened, S4};
  +            S5 = maybe_start_timer(S4),
  +            {reply, ok, opened, S5};
           {ok, #connack{ return_code = Else }, _Rest, S1} ->
               E = {connection_refused, Else},
               {stop, E, {error, E}, S1};
  
positive.code:            S0 = #state{ socket = Sock }) ->
      {next_state, unconnected, S0#state{ socket = undefined }}.
  
  terminate(Reason, StateName, StatData) ->
      ok.
  
  code_change(OldVsn, StateName, StateData, Extra) ->
  
negative.code:     | {will, topic(), payload(), qos_level(), boolean()}
      | {will, topic(), payload()}
      | {clean_session, boolean()}
      | clean_session
      | {keep_alive, 0..16#ffff }).
  
  -spec(connect_opt(#connect{}, connect_option()) -> #connect{}).
  connect_opt(C, {client_id, Id}) ->
  