JBIterable<E> (@Nullable E separator) { return intercept(original -> { return new JBIterator<E>() { boolean flag; @Override protected E nextImpl() { if (!original.hasNext()) return stop(); flag = !flag; return flag ? original.next() : separator; } }; }); }