docs: public static Supplier<Type> genericTypeOfType(final Supplier<Type> typeSupplier, final int n) {
      return new Supplier<Type>() {
        @Override
        public Type get(VisitorState state) {
          Type type = typeSupplier.get(state);
          if (type.getTypeArguments().size() <= n) {
            return state.getSymtab().objectType;
          }
          return type.getTypeArguments().get(n);
        }
      };
    }