docs: public List<Node> link() {
          List<Module> dependencies;
          Module module;
          Module resolved;
          StringBuilder problems;
          List<Node> result;
  
          problems = new StringBuilder();
          for (Map.Entry<Module, List<String>> entry : notLinked.entrySet()) {
              module = entry.getKey();
              dependencies = module.dependencies();
              for (String name : entry.getValue()) {
                  resolved = lookup(name);
                  if (resolved == null) {
                      problems.append("module '" + module.getName() + "': cannot resolve dependency '" + name + "'\n");
                  } else {
                      dependencies.add(resolved);
                  }
              }
          }
          if (problems.length() > 0) {
              throw new IllegalArgumentException(problems.toString());
          }
          result = reloadFiles;
          notLinked = null;
          reloadFiles = null;
          return result;
      }