anchor.diff:  
   raise(Mod, Func, Args, Class, Reason) ->
       Stacktrace = inject(Mod, Func, Args, erlang:get_stacktrace()),
  -    call(Mod, {add_history, {{Mod, Func, Args}, Class, Reason, Stacktrace}}),
  +    cast(Mod, {add_history, {{Mod, Func, Args}, Class, Reason, Stacktrace}}),
       erlang:raise(Class, Reason, Stacktrace).
   
   mock_exception_fun(Class, Reason) -> fun() -> {exception, Class, Reason} end.
  
positive.code:         {passthrough, Args} ->
              % call_original(Args) called from mock function
              Result = apply(original_name(Mod), Func, Args),
              call(Mod, {add_history, {{Mod, Func, Args}, Result}}),
              Result
      end.
  
  
negative.code:     {stop, normal, ok, S}.
  
  %% @hidden
  handle_cast({add_history, Item}, S) ->
      {noreply, S#state{history = [Item| S#state.history]}};
  handle_cast(_Msg, S)  ->
      {noreply, S}.
  
  %% @hidden
  handle_info(_Info, S) -> {noreply, S}.
  