anchor.diff:    [] /= sockets_in_state(S, fin_states()).
   
   fin_args(S) ->
  -  ?LET(Sock, elements(sockets_in_state(S, fin_states())), 
  +  ?LET(Sock, elements(sockets_in_state(S, fin_states())),
          [Sock#socket.ip, Sock#socket.port,
           Sock#socket.rip, Sock#socket.rport,
  -        Sock#socket.rseq, Sock#socket.rcvd, Sock#socket.id]). 
  +        Sock#socket.rseq, Sock#socket.rcvd, Sock#socket.id]).
   
   fin_pre(S, Args = [_Ip, _Port, _RIp, _RPort, _Seq, _Ack, Id]) ->
     in_tcp_state(S, Id, fin_states()) andalso
       fin_adapt(S, Args) == Args.
  -    
  -fin_adapt(S, [_, _, _, _, _, _, Id]) -> 
  +
  +fin_adapt(S, [_, _, _, _, _, _, Id]) ->
     case get_socket(S, Id) of
       Sock = #socket{} ->
         [Sock#socket.ip, Sock#socket.port,
  
positive.code:     false -> false
    end.
  
  accept_adapt(S, [_, Id]) -> 
   case get_socket(S, Id) of
     #socket{socket = Socket} ->
       [Socket, Id];
  
negative.code: 
  %% --- fin ---
  
  fin_states() ->
    [established, fin_wait_1, fin_wait_2].
  
  