docs: public static <E, T, U extends T, V extends T> T inject(Collection<E> self, U initialValue, @ClosureParams(value=FromString.class,options="U,E") Closure<V> closure) {
          // cast with explicit weaker generics for now to keep jdk6 happy, TODO: find better fix
          return (T) inject((Iterator) self.iterator(), initialValue, closure);
      }