static L takeFirst(L l, int n) {
return newSubList(l, 0, n);
}
static L takeFirst(int n, L l) {
ret takeFirst(l, n);
}
static S takeFirst(int n, S s) {
ret substring(s, 0, n);
}
static L takeFirst(int n, Iterable i) {
L l = new L;
repeat n { if (i.hasNext()) l.add(i.next()); else break; }
ret l;
}