static S[] dropFirst(int n, S[] a) {
return drop(n, a);
}
static S[] dropFirst(S[] a) {
return drop(1, a);
}
static O[] dropFirst(O[] a) {
return drop(1, a);
}
static L dropFirst(L l) {
return dropFirst(1, l);
}
static L dropFirst(int n, Iterable i) { ret dropFirst(n, toList(i)); }
static L dropFirst(Iterable i) { ret dropFirst(toList(i)); }
static L dropFirst(int n, L l) {
ret n <= 0 ? l : new ArrayList(l.subList(Math.min(n, l.size()), l.size()));
}
static L dropFirst(L l, int n) {
ret dropFirst(n, l);
}
static S dropFirst(int n, S s) { ret substring(s, n); }
static S dropFirst(S s, int n) { ret substring(s, n); }
static S dropFirst(S s) { ret substring(s, 1); }
ifclass Chain
static Chain dropFirst(Chain c) {
ret c?.next;
}
endif