anchor.diff:        HandleActive =
           fun({LinkOrMonitor, S}, InfoIn) ->
               case S =:= active orelse Type =:= monitors of
  -              true -> Handler(LinkOrMonitor, Reason, InfoIn);
  +              true -> Handler(LinkOrMonitor, S, Reason, InfoIn);
                 false -> InfoIn
               end
           end,
  
positive.code:   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)],
    NewInfo = ExitInfo#concuerror_info{exit_reason = Reason},
    FinalInfo = lists:foldl(FunFold, NewInfo, FunList),
    ?debug_flag(?loop, exited),
  
negative.code:       lists:foldl(Fold, Info, Tables)
    end.
  
  handle_link(Link, _S, Reason, InfoIn) ->
    MFArgs = [erlang, exit, [Link, Reason]],
    {{didit, true}, NewInfo} =
      instrumented(call, MFArgs, exit, InfoIn),
    NewInfo.
  
  handle_monitor({Ref, P, As}, S, Reason, InfoIn) ->
    Msg = {'DOWN', Ref, process, As, Reason},
    MFArgs = [erlang, send, [P, Msg]],
    case S =/= active of
      true ->
        #concuerror_info{logger = Logger} = InfoIn,
        ?unique(Logger, ?lwarning, msg(demonitored), []);
      false -> ok
    end,
    {{didit, Msg}, NewInfo} =
      instrumented(call, MFArgs, exit, InfoIn),
    NewInfo.
  