docs: private void evaluateConstructor(List<Constructor<?>> matchingConstructors, Constructor<?> constructor) {
          boolean newHasBetterParam = false;
          boolean existingHasBetterParam = false;
  
          Class<?>[] paramTypes = constructor.getParameterTypes();
          for (int i = 0; i < paramTypes.length; ++i) {
              Class<?> paramType = paramTypes[i];
              if (!paramType.isPrimitive()) {
                  for (Constructor<?> existingCtor : matchingConstructors) {
                      Class<?> existingParamType = existingCtor.getParameterTypes()[i];
                      if (paramType != existingParamType) {
                          if (paramType.isAssignableFrom(existingParamType)) {
                              existingHasBetterParam = true;
                          } else {
                              newHasBetterParam = true;
                          }
                      }
                  }
              }
          }
          if (!existingHasBetterParam) {
              matchingConstructors.clear();
          }
          if (newHasBetterParam || !existingHasBetterParam) {
              matchingConstructors.add(constructor);
          }
      }