anchor.diff:  
   %% --- syn ---
   
  -%% syn_pre(S) ->
  -%%   in_tcp_state(S, listen).
  -
   syn_pre(S) ->
  +  length(S#state.sockets) < ?MAX_SOCKETS andalso
     [] /= sockets_in_state(S, listen).
   
   syn_args(S) ->
     ?LET(Sock, elements(sockets_in_state(S, listen)),
          [Sock#socket.ip, Sock#socket.port, ip(), port(), uint32(), Sock#socket.id]).
  +
  +syn_pre(S, Args = [_, _, _, _, _, Id]) ->
  +  in_tcp_state(S, Id, listen) andalso
  +  syn_adapt(S, Args) == Args.
   
   syn(Ip, Port, RemoteIp, RemotePort, RemoteSeq, _Id) ->
     Packet =
  
positive.code:   ?SET(Id, tcp_state, established).
  
  %% --- listen ---
  
  listen_args(_) ->
    [port()].
  
negative.code: 
  %% --- open (connect) ---
  
  open_pre(S) ->
    length(S#state.sockets) < ?MAX_SOCKETS.
  
  open_args(_) ->
    [ip(), port()].
  
  