anchor.diff:  get_controller() ->
       erlang:get('$async_controller').
   
  -handle_initiate_adoption(Controller, Executor, From) ->
  -    register_with_async(Controller),
  +handle_initiate_adoption(Controller, From) ->
  +    {ok, Executor} = register_with_async(Controller),
       erlang:monitor(process, Executor),
       reply(From, ok).
   
  
positive.code: 
  adopt(Child) ->
      executor = get_role(),
      ok = call(Child, {initiate_adoption, get_controller(), self()}).
  
  with(AsyncBody, Fun) ->
      Async = start(AsyncBody),
  
negative.code: maybe_register_with_parent_async(undefined) ->
      ok;
  maybe_register_with_parent_async(Pid) ->
      {ok, _} = register_with_async(Pid).
  
  register_with_async(Pid) ->
      controller = get_role(),
      {ok, _} = call(Pid, {register_child_async, self()}).
  
  async_loop_wait_result(Type, Child, Reply, ChildAsyncs) ->
      receive
  