anchor.diff:            end),
   
       Type = proplists:get_value(type, Opts, wait),
  -    async_loop_wait_result(Type, MRef, Child, Reply, []).
  +    async_loop_wait_result(Type, Child, Reply, []).
   
   maybe_register_with_parent_async(undefined) ->
       ok;
  
positive.code: %% internal
  async_init(Parent, ParentController, Opts, Fun) ->
      process_flag(trap_exit, true),
      MRef = erlang:monitor(process, Parent),
  
      set_role(controller),
      maybe_register_with_parent_async(ParentController),
  
negative.code:     controller = get_role(),
      ok = call(Pid, {register_child_async, self()}).
  
  async_loop_wait_result(Type, Child, Reply, ChildAsyncs) ->
      receive
          {'DOWN', _MRef, process, _Pid, Reason} = Down ->
              terminate_now(Reason, [Child | ChildAsyncs]);
          {'EXIT', Child, Reason} ->
              terminate_on_query(Type, {child_died, Reason}, ChildAsyncs);
          %% note, we don't assume that this comes from the parent, because we
          %% can be terminated by parent async, for example, which is not the
          %% actual parent of our process
  