docs: public static <E, T, U extends T, V extends T> T inject(E[] self, U initialValue, @ClosureParams(value=FromString.class,options="U,E") Closure<V> closure) {
          Object[] params = new Object[2];
          T value = initialValue;
          for (Object next : self) {
              params[0] = value;
              params[1] = next;
              value = closure.call(params);
          }
          return value;
      }