anchor.diff:  do_restart({shutdown, _Term}, Child, State) ->
       NState = state_del_child(Child, State),
       {ok, NState};
  -do_restart(Reason, Child, State) when Child#child.restart_type=:=transient ->
  +do_restart(Reason, Child, State) when ?is_transient(Child) ->
       report_error(child_terminated, Reason, Child, State#state.name),
       restart(Child, State);
  -do_restart(Reason, Child, State) when Child#child.restart_type=:=temporary ->
  +do_restart(Reason, Child, State) when ?is_temporary(Child) ->
       report_error(child_terminated, Reason, Child, State#state.name),
       NState = state_del_child(Child, State),
       {ok, NState}.
  
positive.code:     case get_child(Child#child.name, State) of
  	false ->
  	    case do_start_child(State#state.name, Child) of
  		{ok, undefined} when Child#child.restart_type =:= temporary ->
  		    {{ok, undefined}, State};
  		{ok, Pid} ->
  		    {{ok, Pid}, save_child(Child#child{pid = Pid}, State)};
  
negative.code: 	    {ok, State}
      end.
  
  do_restart(Reason, Child, State) when ?is_permanent(Child) ->
      report_error(child_terminated, Reason, Child, State#state.name),
      restart(Child, State);
  do_restart(normal, Child, State) ->
  