anchor.diff:  
   %% Call: listen/1
   handle_event(
  -  {call, From}, {listen, Backlog},
  -  _State, {#params{socket = Socket} = _P, _D}) ->
  +  {call, From}, {listen, Backlog} = _LISTEN,
  +  _State, {#params{socket = Socket} = P, D}) ->
  +    %% ?DBG({handle_event, call, _LISTEN, _State}),
       Result =
           case socket:listen(Socket, Backlog) of
               ok -> {ok, Socket};
               {error, _} = Error -> Error
           end,
  -    {keep_state_and_data,
  +    %% ?DBG({listen_result, Result}),
  +    {keep_state, {P, D#{type => listen}},
        [{reply, From, Result}]};
   
   %% Call: recv/2 - active socket
  
positive.code:              #accept{
                  info = SelectInfo, from = From,
                  listen_socket = ListenSocket},
               {P, D},
               [{{timeout, accept}, Timeout, accept}]};
          {error, _} = Error ->
              {next_state,
  
negative.code:         %%
          #{server_read := _} when State =:= 'closed' ->
              {{error, einval}, D};
          #{server_read := _} when (State =:= 'closed_read') orelse
                                   (State =:= 'closed_read_write') ->
              {{error, einval}, D};
          #{server_read := _} ->
              state_setopts_server(P, D, State, Opts, Opt_1);
  