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