code: public boolean isMoreSpecificGenerics(final Type... arguments) {
          if (arguments.length != actualArguments.length) {
              throw new IllegalArgumentException(String.format(
                      "Wrong generics count provided <%s> in compare to current types <%s>",
                      TypeToStringUtils.toStringTypes(arguments, EmptyGenericsMap.getInstance()),
                      TypeToStringUtils.toStringTypes(actualArguments, EmptyGenericsMap.getInstance())));
          }
          for (int i = 0; i < arguments.length; i++) {
              // if at least one provided type is less specific then entire set is less specific
              if (TypeUtils.isMoreSpecific(actualArguments[i], arguments[i])) {
                  return false;
              }
          }
          return true;
      }
docs: Useful for types check before calling {@link #improveAccuracy(Type...)} which will fail if provided types
  would be less specific (actually if at least one type is less specific).
  
  @param arguments more specific generics for current type
  @return true if provided generics are more specific, false otherwise
  @throws IllegalArgumentException if wrong generics count provided