ImmutableListIterator<? extends T> current() {
            if (current == null) {
                l = left.iterator();
                current = l;
            }
            if (current == l && !current.hasNext()) {
                r = right.iterator();
                current = r;
            }
            return current;
        }