anchor.diff:    #concuerror_info{links = LinksTable, monitors = MonitorsTable} = Info,
     FetchFun =
       fun(Table) ->
  -        [begin ets:delete_object(Table, E), D end ||
  -          {_, D} = E <- ets:lookup(Table, Self)]
  +        [begin ets:delete_object(Table, E), {D, S} end ||
  +          {_, D, S} = E <- ets:lookup(Table, Self)]
       end,
     Links = FetchFun(LinksTable),
     Monitors = FetchFun(MonitorsTable),
  
positive.code:     true ->
        {Pid, Ref} = Result,
        #concuerror_info{monitors = Monitors} = Info,
        true = ets:insert(Monitors, {Pid, {Ref, Parent}});
      false ->
        Pid = Result
    end,
    case lists:member(link, SpawnOpts) of
      true ->
        #concuerror_info{links = Links} = Info,
        true = ets:insert(Links, [{Parent, Pid}, {Pid, Parent}]);
      false -> ok
    end,
    Pid ! {start, Module, Name, Args},
  
negative.code:   FunFold = fun(Fun, Acc) -> Fun(Acc) end,
    FunList =
      [fun ets_ownership_exiting_events/1,
       link_monitor_handlers(fun handle_link/3, Links),
       link_monitor_handlers(fun handle_monitor/3, Monitors)],
    FinalInfo = #concuerror_info{next_event = FinalEvent} =
      lists:foldl(FunFold, ExitInfo#concuerror_info{exit_reason = Reason}, FunList),
    self() ! FinalEvent,
  