static L takeFirst_clone(L l, int n) { ret cloneSubList(l, 0, n); } static L takeFirst_clone(int n, L l) { ret takeFirst_clone(l, n); } static L takeFirst_clone(int n, Iterable i) { L l = new L; Iterator it = i.iterator(); repeat n { if (it.hasNext()) l.add(it.next()); else break; } ret l; }