anchor.diff:  
   %% -------------------------------------------------------------------------
   
  -shutdown(?module_socket(Server, Socket), How) ->
  -    Result =
  -        case How of
  -            write ->
  -                socket:shutdown(Socket, How);
  -            read ->
  -                call(Server, shutdown_read);
  -            read_write ->
  -                close_server(Server)
  -        end,
  +shutdown(?module_socket(Server, _Socket), How) ->
  +    %% ?DBG({shutdown, How}),
  +    Result = call(Server, {shutdown, How}),
  +    %% ?DBG({shutdown_result, Result}),
       ?badarg_exit(Result).
   
   %% -------------------------------------------------------------------------
  
positive.code:             [ok = socket_copy_opt(ListenSocket, Opt, Socket)
               || Opt <- socket_inherit_opts()],
              handle_connected(
                P#params{socket = Socket}, D,
                [{{timeout, accept}, cancel},
                 {reply, From, {ok, Socket}}]);
          {select, SelectInfo} ->
  
negative.code: %% ------- Socket is defined from here on -----------------------------------
  
  %% Call: bind/1
  handle_event({call, From}, {bind, BindAddr} = _BIND, _State, {P, _D}) ->
      %% ?DBG({handle_event, call, _BIND, _State}),
      Result = socket:bind(P#params.socket, BindAddr),
      %% ?DBG({bind_result, Result}),
      {keep_state_and_data,
       [{reply, From, Result}]};
  
  