docs: public References resolve(Request request) throws IOException, CyclicDependency {
          List<Module> includes;
          List<Module> excludes;
          References references;
          List<Module> moduleList;
          Node resolved;
          boolean minimize;
          boolean declarationOnly;
  
          includes = new ArrayList<>();
          excludes = new ArrayList<>();
          for (String name : Module.SEP.split(request.modules)) {
              if (name.length() == 0) {
                  throw new IllegalStateException();
              }
              if (name.charAt(0) == Module.NOT) {
                  excludes.add(get(name.substring(1)));
              } else {
                  includes.add(get(name));
              }
          }
          moduleList = sequence(includes);
          excludes = sequence(excludes);
          references = new References(request.type, request.minimize);
          for (Module module : moduleList) {
              if (excludes.contains(module)) {
                  if (request.type == MimeType.JS) {
                      continue;
                  }
                  declarationOnly = true;
              } else {
                  declarationOnly = false;
              }
              for (File file : module.resolve(request)) {
                  resolved = file.get(request.minimize);
                  minimize = request.minimize && file.getMinimized() == null;
                  references.add(minimize, declarationOnly, resolved);
              }
          }
          return references;
      }