anchor.diff:  
   
   close_callouts(S, [_]) ->
  -  ?APPLY(sent_fin, []),
     case S#state.tcp_state of
       close_wait ->
  +      ?APPLY(sent_fin, []),
         ?SET(tcp_state, last_ack),
         ?BLOCK(close);
       established ->
  +      ?APPLY(sent_fin, []),
         ?SET(tcp_state, fin_wait_1),
  +      ?BLOCK(close);
  +    _ ->
  +      ?APPLY(reset, []),
  +      ?SET(tcp_state, closed),
  +      ?SET(socket_type, undefined),
         ?BLOCK(close)
     end.
   
  
positive.code: adjacent(_) -> [].
  
  prop_tcp() ->
    eqc:dont_print_counterexample(
    with_parameter(default_process, worker,
    with_parameter(color, true,
    ?FORALL(Cmds, commands(?MODULE),
  
negative.code: %% --- close ---
  
  close_pre(S) ->
    in_tcp_state(S, [established, close_wait, listen]) andalso
    lists:member(S#state.socket_type, [accept, connect]).
  
  
  close_args(S) ->
    [S#state.socket].
  