anchor.diff:  		  Mods);
   validMods(Mods) -> throw({invalid_modules, Mods}).
   
  -child_to_spec(#child{name = Name,
  +child_to_spec(#child{id = Id,
   		    mfargs = Func,
   		    restart_type = RestartType,
   		    shutdown = Shutdown,
   		    child_type = ChildType,
   		    modules = Mods}) ->
  -    #{id => Name,
  +    #{id => Id,
         start => Func,
         restart => RestartType,
         shutdown => Shutdown,
  
positive.code: 
  do_check_childspec(#{restart := RestartType,
  		     type := ChildType} = ChildSpec)->
      Name = case ChildSpec of
  	       #{id := N} -> N;
  	       _ -> throw(missing_id)
  	   end,
      Func = case ChildSpec of
  	       #{start := F} -> F;
  	       _ -> throw(missing_start)
  	   end,
      validName(Name),
      validFunc(Func),
      validRestartType(RestartType),
      validChildType(ChildType),
  
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(),
  