anchor.diff:  -define(REFC(ID), {listener_refc, ID}).
   -record(state, {binding, listener_pid, listener_id, listener_mref}).
   
  -init(Binding) ->
  +init({StarterPid, StarterRef, Binding}) ->
       process_flag(trap_exit, true),
   
       case start_listener(Binding) of
  
positive.code:                        listener_mod = ListenerModule,
                         callback_mod = CallbackModule,
                         callback_args = CallbackArgs},
      case gen_server:start(?MODULE, Binding, []) of
          {ok, Pid} ->
              link(Pid),
              {ok, Pid};
          {error, Reason} ->
              {error, Reason}
      end.
  
  stop(BindingServer) ->
  
negative.code:                            listener_mref = ListenerMonitor},
              {ok, State, hibernate};
          {error, Error} ->
              StarterPid ! {error, StarterRef, Error},
              ignore
      end.
  
  handle_call({stop, Reason}, _From, State) ->
  