anchor.diff:  handle_payload({replay, #seto_replay{seq=Seq}}, #s{session=Sess, sock=Sock} = State) ->
     smk_example_message_cache:map_from(Sess, Seq,
       fun(Msg) ->
  +      io:format("Resending ~p~n", [replay_msg(Msg)]),
         sock_send(Sock, replay_msg(Msg))
       end),
     State;
   
  -handle_payload({login_response, #seto_login_response{session=Sess}}, State) ->
  -  io:format("Logged in as ~p~n", [Sess]),
  -  State#s{session=Sess};
  +handle_payload({login_response, _} = Payload, State) ->
  +  login_payload(Payload, State);
   
   handle_payload(pong, State) ->
     io:format(" p", []),
  
positive.code:   {noreply, NewState#s{buf=NewBuf}};
  
  handle_info({tcp_closed, _Sock}, State) ->
    {stop, normal, State};
  
  handle_info({tcp_error, _Sock, Reason}, State) ->
  
negative.code: handle_info(_Info, State) ->
    {noreply, State}.
  
  terminate(Reason, #s{session=Sess, in=In, out=Out}) ->
    io:format("Terminated (~p) - to resume add opts {session,~p},{in,~p},{out,~p}~n", [Reason,Sess,In,Out]),
    ok.
  
  code_change(_OldVsn, State, _Extra) ->
  