anchor.diff:  reset_next(S, _, [Id]) ->
     S#state{sockets = lists:keydelete(Id, #socket.id, S#state.sockets)}.
   
  +reset_features(S, [Id], _) ->
  +  [ {(get_socket(S, Id))#socket.tcp_state, '->', closed} ].
  +
   sent_syn_callouts(_, [Id]) ->
     ?MATCH(Packet, ?APPLY(sent, [Id])),
     Port = {call, erlang, element, [#pkt.sport, Packet]},
  
positive.code:     checksum:start(),
      {H, S, Res} = run_commands(Cmds),
      cleanup(),
      TcpStates = [ TcpS || #socket{tcp_state = TcpS} <- lists:map(fun eqc_statem:history_state/1, H) ++ [S] ],
      check_command_names(Cmds,
        measure(length, commands_length(Cmds),
        aggregate(TcpStates,
        aggregate(adjacent(TcpStates),
        aggregate([ Sock#socket.tcp_state
                    || Hist <- H, 
                       Sock <- (eqc_statem:history_state(Hist))#state.sockets ],
        eqc_component:pretty_commands(?MODULE, Cmds, {H, S, Res},
          Res == ok))))))
    end))))).
  
  cleanup() -> cleanup([]).
  
negative.code: set_next(S, _, [Id, Key, Value]) ->
    Sock = get_socket(S, Id),
    set_socket(S, Id, setelement(Key, Sock, Value)).
  
  set_features(S, [Id, Key, Value], _) ->
    [ {(get_socket(S, Id))#socket.tcp_state, '->', Value}
      || Key == #socket.tcp_state ].
  
  inc_next(S, _, [Id, Key]) ->
    Sock = get_socket(S, Id),
  