anchor.diff:  weight(_S, open)    -> 1;
   weight(_S, close)   -> 2;
   weight(_S, deliver) -> 10;
  +weight(_S, fin)     -> 1;
   weight(_S, _Cmd)    -> 3.
   
   prop_encode_decode() ->
  
positive.code:   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 ]),
        ?APPLY(reset, [Id]);
      _ ->
        ?APPLY(do_close, [Id]),
  
negative.code:   spawn.
  
  %% --- close ---
  
  close_states() ->
    [established, close_wait, listen].
  