@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (!iterator.hasNext()) { return this; } return CompositeSeq.of(this, C.seq(iterator)); }
@Override public C.Sequence<T> append(C.Sequence<? extends T> seq) { if (seq.isEmpty()) { return this; } return CompositeSeq.of(this, seq); }
@Override public C.Sequence<T> append(C.Sequence<? extends T> seq) { if (seq.isEmpty()) { return this; } return CompositeSeq.of(this, seq); }
@Override public C.Sequence<T> append(Enumeration<? extends T> enumeration) { if (!enumeration.hasMoreElements()) { return this; } return CompositeSeq.of(this, C.seq(enumeration)); }
@Override public C.Sequence<T> append(T t) { return CompositeSeq.of(this, $.val(t)); }
@Override public C.Sequence<T> append(Enumeration<? extends T> enumeration) { if (!enumeration.hasMoreElements()) { return this; } return CompositeSeq.of(this, C.seq(enumeration)); }
@Override public C.Sequence<T> prepend(Iterator<? extends T> iterator) { if (!iterator.hasNext()) { return this; } if (isLazy()) { return CompositeSeq.of(C.seq(iterator), this); } return unLazyAppend(iterator); }
@Override public C.Sequence<T> prepend(Iterator<? extends T> iterator) { if (!iterator.hasNext()) { return this; } if (isLazy()) { return CompositeSeq.of(C.seq(iterator), this); } return unLazyAppend(iterator); }
@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (isLazy()) { return CompositeSeq.of(this, C.seq(iterator)); } return unLazyAppend(iterator); }
@Override public C.Sequence<T> prepend(Enumeration<? extends T> enumeration) { if (isLazy()) { return CompositeSeq.of(C.seq(enumeration), this); } return unLazyAppend(enumeration); }
@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (isLazy()) { return CompositeSeq.of(this, C.seq(iterator)); } return unLazyAppend(iterator); }
@Override public C.Sequence<T> append(C.Sequence<? extends T> seq) { if (seq instanceof C.List) { return appendList((C.List<T>) seq); } if (isLazy()) { return CompositeSeq.of(this, seq); } return unLazyAppend(seq); }
@Override public C.Sequence<T> append(C.Sequence<? extends T> seq) { if (seq instanceof C.List) { return appendList((C.List<T>) seq); } if (isLazy()) { return CompositeSeq.of(this, seq); } return unLazyAppend(seq); }
@Override public C.Sequence<T> append(Enumeration<? extends T> enumeration) { if (isLazy()) { return CompositeSeq.of(this, C.seq(enumeration)); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(enumeration); return lb.toList(); }
@Override public C.Sequence<T> append(C.Sequence<? extends T> seq) { if (seq instanceof C.List) { return appendList((C.List<T>) seq); } if (isLazy()) { return CompositeSeq.of(this, seq); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(seq); return lb.toList(); }
@Override public C.Sequence<T> append(Enumeration<? extends T> enumeration) { if (isLazy()) { return CompositeSeq.of(this, C.seq(enumeration)); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(enumeration); return lb.toList(); }
@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (isLazy()) { return CompositeSeq.of(this, C.seq(iterator)); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(iterator); return lb.toList(); }
@Override public C.Sequence<T> prepend(C.Sequence<? extends T> seq) { if (seq instanceof C.List) { return prependList((C.List<T>) seq); } if (isLazy()) { return CompositeSeq.of(seq, this); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(seq).append(this); return lb.toList(); }
@Override public C.Sequence<T> append(C.Sequence<? extends T> seq) { if (seq instanceof C.List) { return appendList((C.List<T>) seq); } if (isLazy()) { return CompositeSeq.of(this, seq); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(seq); return lb.toList(); }
@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (isLazy()) { return CompositeSeq.of(this, C.seq(iterator)); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(iterator); return lb.toList(); }