anchor.diff:      {ok, State}.
   
   
  -handle_call(_Msg, _From, State) -> {reply, _Msg, State}.
  -handle_cast(_Msg, State) -> {noreply, State}.
  -
  -
  -handle_info({inet_async, ListenSocket, AcceptorRef, {ok, ClientSocket}},
  +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.
  
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
      end,
      {ok, NewAcceptorRef} = prim_inet:async_accept(ListenSocket, -1),
      {ok, State#state{acceptor_ref = NewAcceptorRef}};
  handle_msg(Info, State) ->
      log:e("[IM] Listener got unknown request:~p~n", [Info]),
      {ok, State}.
  
  
  terminate(_Reason, State) ->
      ok = gen_tcp:close(State#state.listen_socket),
      ok.
  
  
  
  