docs: @SuppressWarnings("serial")
      public static Type[] forGenericInterfaces(final Class<?> type) {
          Type[] result = new Type[type.getGenericInterfaces().length];
          for (int i = 0; i < result.length; i++) {
              final int index = i;
              result[i] = forTypeProvider(new DefaultTypeProvider() {
                  @Override
                  public Type getType() {
                      return type.getGenericInterfaces()[index];
                  }
              });
          }
          return result;
      }