anchor.diff:  
   get_controller() ->
       erlang:get('$async_controller').
  +
  +handle_initiate_adoption(Controller, Executor, From) ->
  +    register_with_async(Controller),
  +    erlang:monitor(process, Executor),
  +    reply(From, ok).
  
positive.code:             exit(Reason);
          {'$async_req', From, get_result} ->
              handle_get_result(From, Result);
          {'$async_req', From, {register_child_async, _Pid}} ->
              %% We don't expect register requests at this point, but it's
              %% possible to write a correct async that has such behavior. If we
  
negative.code:         %% actual parent of our process
          {'EXIT', _, Reason} ->
              terminate_now(Reason, [Child | ChildAsyncs]);
          {'$async_req', From, {initiate_adoption, Controller, Executor}} ->
              handle_initiate_adoption(Controller, Executor, From),
              async_loop_wait_result(Type, Child, Reply, ChildAsyncs);
          {'$async_req', From, {register_child_async, Pid}} ->
              reply(From, ok),
              async_loop_wait_result(Type, Child, Reply, [Pid | ChildAsyncs]);
  