docs: public static <T> T first(Iterable<T> self) {
          Iterator<T> iterator = self.iterator();
          if (!iterator.hasNext()) {
              throw new NoSuchElementException("Cannot access first() element from an empty Iterable");
          }
          return iterator.next();
      }