anchor.diff:      Chs = do_replace_child(Child, State#state.children),
       State#state{children = Chs}.
   
  -do_replace_child(Child, [Ch|Chs]) when Ch#child.name =:= Child#child.name ->
  +do_replace_child(Child, [Ch|Chs]) when Ch#child.id =:= Child#child.id ->
       [Child | Chs];
   do_replace_child(Child, [Ch|Chs]) ->
       [Ch|do_replace_child(Child, Chs)].
   
   remove_child(Child, State) ->
  -    Chs = lists:keydelete(Child#child.name, #child.name, State#state.children),
  +    Chs = lists:keydelete(Child#child.id, #child.id, State#state.children),
       State#state{children = Chs}.
   
   get_child_and_args(Pid, #state{children=[Child]}=State) when ?is_simple(State) ->
  
positive.code:     lists:keyfind(Pid, #child.pid, State#state.children);
  get_child_and_args(?restarting(Pid)=RPid, State) when is_pid(Pid) ->
      lists:keyfind(RPid, #child.pid, State#state.children);
  get_child_and_args(Name, State)  ->
      lists:keyfind(Name, #child.name, State#state.children).
  
  %%-----------------------------------------------------------------
  %% Func: init_state/4
  
negative.code:       Id :: pid() | child_id(),
        Result :: 'ok' | {'error', Error},
        Error :: 'not_found' | 'simple_one_for_one'.
  terminate_child(Supervisor, Id) ->
      call(Supervisor, {terminate_child, Id}).
  
  -spec get_childspec(SupRef, Id) -> Result when
        SupRef :: sup_ref(),
        Id :: pid() | child_id(),
        Result :: {'ok', child_spec()} | {'error', Error},
        Error :: 'not_found'.
  get_childspec(Supervisor, Id) ->
      call(Supervisor, {get_childspec, Id}).
  
  -spec which_children(SupRef) -> [{Id,Child,Type,Modules}] when
        SupRef :: sup_ref(),
  