docs: public static <T> Collection<T> asCollection(Iterable<T> self) {
          if (self instanceof Collection) {
              return (Collection<T>) self;
          } else {
              return toList(self);
          }
      }