anchor.diff:  	    ChildList
       end;
   restart_child(Pid, ChildList, _Reason) ->
  -    case lists:keyfind(Pid, 1, ChildList) of
  -	{Pid, ChildSpec} ->
  +    case lists:keyfind(Pid, #child_state.pid, ChildList) of
  +	#child_state{pid = _Pid, id = _Id, spec = ChildSpec} = Child ->
   	      case start_child(ChildSpec) of
   		{ok, NewPid, ChildSpec} ->
  -		    [{NewPid, ChildSpec}|lists:keydelete(Pid, 1, ChildList)];
  +		    [Child#child_state{pid=NewPid}|lists:keydelete(Pid, #child_state.pid, ChildList)];
   		{error, child_not_started, ChildSpec} ->
   		    lists:keydelete(Pid, 1, ChildList)
   	    end;
  
positive.code: 
  %% API
  -export([start_link/1, stop/0]).
  %-export([stop_child/1]).
  
  %% Supervisor callbacks
  -export([init/1]).
  
negative.code: 	{start_children, ChildSpecList} ->
  	    start_children(ChildSpecList),
  	    loop({Timeout, ChildList});
  	{ok, child_started, Child} ->
  	    io:format("Child for Spec '~p' is started.~n", [Child#child_state.spec]),
  	    NewChildList = [Child|ChildList],
  	    loop({Timeout, NewChildList});
  	{error, child_not_started, ChildSpec} ->
  	    io:format("Child for spec ~p cannot be started.~n", [ChildSpec]),
  