code: public static <T> Iterable<T> each(Iterable<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure closure) {
          each(self.iterator(), closure);
          return self;
      }
docs: Iterates through an Iterable, passing each item to the given closure.
  
  @param self    the Iterable over which we iterate
  @param closure the closure applied on each element found
  @return the self Iterable