static L cloneTakeFirst(Cl l, int n) {
n = min(n, l(l));
L out = emptyList(n);
if (n != 0)
for (A a : l) {
out.add(a);
if (l(out) >= n)
break;
}
ret out;
}
static L cloneTakeFirst(int n, Cl l) {
ret cloneTakeFirst(l, n);
}
static L cloneTakeFirst(L l, int n) {
ret l(l) <= n ? l : cloneSubList(l, 0, n);
}
static L cloneTakeFirst(int n, L l) {
ret cloneTakeFirst(l, n);
}