anchor.diff:  %%
   %% If no destinations are provided, report error to the callback module.
   %% @end
  -send_internal(Id, [], Request, State) ->
  +send_internal(Id, [], Request, #state{mod = Mod} = State) ->
       % no more destinations -- report to callback
  -    Callback = State#state.callback,
  -    Callback:request_failed(Id, Request, request_timeout),
  +    Mod:request_failed(Id, Request, request_timeout),
       State;
   send_internal(Id, [Top|Fallback], Request, State) ->
       % send request to the top destination, remember the transaction id,
  
positive.code:     {Id, TxKey, Fallback, Request} = lists:keyfind(TxKey, 2, State#state.sending),
      State2 = send_internal(Id, Fallback, Request, State),
      {noreply, State2};
  handle_info(Req, State) ->
      Callback = State#state.callback,
      Response = Callback:handle_info(Req, State#state.cstate),
      handle_response(Response, State).
  
  
  %% @private
  -spec terminate(term(), #state{}) -> ok.
  terminate(Reason, State) ->
      Callback = State#state.callback,
      Callback:terminate(Reason, State#state.cstate).
  
  %% @private
  -spec code_change(term(), #state{}, term()) -> {ok, #state{}}.
  code_change(OldVsn, State, Extra) ->
      Callback = State#state.callback,
      {ok, CState} = Callback:code_change(OldVsn, State#state.cstate, Extra),
      {ok, State#state{cstate = CState}}.
  
  %%-----------------------------------------------------------------
  %% Internal functions
  
negative.code: 
  %% @doc Wrap client state back into the `#state{}'
  %% @end
  handle_response({reply, Reply, ModState}, State) -> {reply, Reply, State#state{mod_state = ModState}};
  handle_response({reply, Reply, ModState, Timeout}, State) -> {reply, Reply, State#state{mod_state = ModState}, Timeout};
  handle_response({noreply, ModState}, State) -> {noreply, State#state{mod_state = ModState}};
  handle_response({noreply, ModState, Timeout}, State) -> {noreply, State#state{mod_state = ModState}, Timeout};
  handle_response({stop, Reason, Reply, ModState}, State) -> {stop, Reason, Reply, State#state{mod_state = ModState}};
  handle_response({stop, Reason, ModState}, State) -> {stop, Reason, State#state{mod_state = ModState}}.
  