docs: private static boolean typesEquivalent(Type typeToMatch, GenericArrayType type, ResolutionContext ctx) {
          if (typeToMatch instanceof GenericArrayType) {
              GenericArrayType aGat = (GenericArrayType) typeToMatch;
              return typesEquivalent(aGat.getGenericComponentType(),
                                     ctx.resolve(type.getGenericComponentType()),
                                     ctx);
          }
  
          if (typeToMatch instanceof Class) {
              Class<?> aClazz = (Class<?>) typeToMatch;
              if (aClazz.isArray()) {
                  return typesEquivalent(aClazz.getComponentType(), ctx.resolve(type.getGenericComponentType()), ctx);
              }
          }
  
          return false;
      }