anchor.diff:    FunFold = fun(Fun, Acc) -> Fun(Acc) end,
     FunList =
       [fun ets_ownership_exiting_events/1,
  -     link_monitor_handlers(links, fun handle_link/3, Links),
  -     link_monitor_handlers(monitors, fun handle_monitor/3, Monitors)],
  +     link_monitor_handlers(links, fun handle_link/4, Links),
  +     link_monitor_handlers(monitors, fun handle_monitor/4, Monitors)],
     NewInfo = ExitInfo#concuerror_info{exit_reason = Reason},
     FinalInfo = lists:foldl(FunFold, NewInfo, FunList),
     ?debug_flag(?loop, exited),
  
positive.code:       lists:foldl(Fold, Info, Tables)
    end.
  
  handle_link(Link, Reason, InfoIn) ->
    MFArgs = [erlang, exit, [Link, Reason]],
    {{didit, true}, NewInfo} =
      instrumented(call, MFArgs, exit, InfoIn),
    NewInfo.
  
  handle_monitor({Ref, P, As}, Reason, InfoIn) ->
    Msg = {'DOWN', Ref, process, As, Reason},
    MFArgs = [erlang, send, [P, Msg]],
    {{didit, Msg}, NewInfo} =
      instrumented(call, MFArgs, exit, InfoIn),
    NewInfo.
  
negative.code: 
  %%------------------------------------------------------------------------------
  
  msg(demonitored) ->
    "Concuerror may let exiting processes emit 'DOWN' messages for cancelled"
      " monitors. Any such messages are discarded upon delivery and can never be"
      " received.~n";
  msg(exit_normal_self_abnormal) ->
    "A process that is not trapping exits (~w) sent a 'normal' exit"
      " signal to itself. This shouldn't make it exit, but in the current"
  