public static @NotNull <E> JBIterable<E> from(@Nullable Iterable<? extends E> iterable) {
    if (iterable == null || iterable == EMPTY) return empty();
    if (iterable instanceof JBIterable) return (JBIterable<E>)iterable;
    if (iterable instanceof Collection && ((Collection<?>)iterable).isEmpty()) return empty();
    return new Multi<>(iterable);
  }
public static @NotNull <E> JBIterable<E> from(@Nullable Iterable<? extends E> iterable)