anchor.diff:    case Sock#socket.socket_type of
       listen ->
         ?PAR([ ?UNBLOCK({accept, Pid}, closed) || Pid <- Sock#socket.blocked ] ++
  -           [ ?APPLY(do_close, [Child#socket.id]) ||
  -             Child <- S#state.sockets, Child#socket.parent == Id,
  -             Child#socket.socket == undefined ]),
  +           %% BUG: only sends FIN to connections in the accept_queue
  +           [ ?APPLY(do_close, [Child]) || Child <- Sock#socket.accept_queue ]),
  +           %% Should be this:
  +           %% [ ?APPLY(do_close, [Child#socket.id]) ||
  +           %%   Child <- S#state.sockets, Child#socket.parent == Id,
  +           %%   Child#socket.socket == undefined ]))),
         ?APPLY(reset, [Id]);
       _ ->
         ?APPLY(do_close, [Id]),
  
positive.code: weight(_S, open)    -> 1;
  weight(_S, close)   -> 2;
  weight(_S, deliver) -> 10;
  weight(_S, _Cmd)    -> 3.
  
  prop_encode_decode() ->
  
negative.code:   spawn.
  
  %% --- close ---
  
  close_states() ->
    [established, close_wait, listen].
  