anchor.diff:                          negotiated_version = Version,
                           renegotiate_at = RenegotiateAt},          
       {next_state, handshake, StateData, [{reply, From, ok}]};
  -init(info, Msg, StateData) -> 
  -    handle_info(Msg, ?FUNCTION_NAME, StateData).
  +init(_, _, _) ->
  +    %% Just in case anything else sneeks through
  +    {keep_state_and_data, [postpone]}.
  +
   %%--------------------------------------------------------------------
   -spec connection(gen_statem:event_type(),
              Msg :: term(),
              StateData :: term()) ->
                     gen_statem:event_handler_result(atom()).
   %%--------------------------------------------------------------------
  -connection({call, From}, renegotiate, 
  -           #data{connection_states = #{current_write := Write}} = StateData) ->
  -    {next_state, handshake, StateData, [{reply, From, {ok, Write}}]};
   connection({call, From}, {application_data, AppData}, 
              #data{socket_options = #socket_options{packet = Packet}} =
                  StateData) ->
  
positive.code: callback_mode() -> 
      state_functions.
  
  %%--------------------------------------------------------------------
  -spec init(Args :: term()) ->
                    gen_statem:init_result(atom()).
  
negative.code:     {keep_state_and_data,
       [{next_event, {call, {self(), undefined}},
         {application_data, iolist_to_binary(Data)}}]};
  ?HANDLE_COMMON.
  
  %%--------------------------------------------------------------------
  -spec handshake(gen_statem:event_type(),
                    Msg :: term(),
                    StateData :: term()) ->
                           gen_statem:event_handler_result(atom()).
  %%--------------------------------------------------------------------
  handshake({call, From}, {set_opts, Opts}, StateData) ->
      handle_set_opts(From, Opts, StateData);
  handshake({call, _}, _, _) ->
      %% Postpone all calls to the connection state
      {keep_state_and_data, [postpone]};
  handshake(internal, {application_packets,_,_}, _) ->
      {keep_state_and_data, [postpone]};
  handshake(cast, {new_write, WritesState, Version}, 
            #data{connection_states = ConnectionStates0} = StateData) ->
  