anchor.diff:                    | {'global', Name :: atom()}
                     | {'via', Module :: module(), Name :: any()}
                     | pid().
  --type child_spec() :: #{id := child_id(),       % mandatory
  +-type child_spec() :: #{id := child_id(),      % mandatory
   			start := mfargs(),      % mandatory
   			restart => restart(),   % optional
   			shutdown => shutdown(), % optional
  
positive.code: 		  Mods);
  validMods(Mods) -> throw({invalid_modules, Mods}).
  
  child_to_spec(#child{name = Name,
  		    mfargs = Func,
  		    restart_type = RestartType,
  		    shutdown = Shutdown,
  		    child_type = ChildType,
  		    modules = Mods}) ->
      #{id => Name,
        start => Func,
        restart => RestartType,
        shutdown => Shutdown,
  
negative.code:     lists:reverse(Children ++ KeepOld).
  
  update_chsp(OldCh, Children) ->
      case lists:map(fun(Ch) when OldCh#child.id =:= Ch#child.id ->
  			   Ch#child{pid = OldCh#child.pid};
  		      (Ch) ->
  			   Ch
  