anchor.diff:  
   start_link(Index) ->
       Name = erlang:list_to_atom("listener_" ++ erlang:integer_to_list(Index)),
  -    gen_server:start_link({local, Name}, ?MODULE, [Index], []).
  +    gen_msg:start_link({local, Name}, ?MODULE, [Index]).
   
   
   
   %% ===================================================================
  -%% gen_server callbacks
  +%% gen_msg callbacks
   %% ===================================================================
   
   init([Index]) ->
  
positive.code: 
  -module(listener).
  
  -behaviour(gen_server).
  
  % APIs
  -export([start_link/1]).
  
  % gen_server callbacks
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
           terminate/2, code_change/3]).
  
  -record(state, {listen_socket, cf_name, acceptor_ref}).
  
  
negative.code:     {ok, State}.
  
  
  handle_msg({inet_async, ListenSocket, AcceptorRef, {ok, ClientSocket}},
               #state{listen_socket = ListenSocket, acceptor_ref = AcceptorRef} = State) ->
      %% Taken from prim_inet.  We are merely copying some socket options from the
      %% listening socket to the new TCP socket.
  