static String[] dropLast(String[] a, int n) {
n = Math.min(n, a.length);
String[] b = new String[a.length-n];
System.arraycopy(a, 0, b, 0, b.length);
return b;
}
static L dropLast(L l) {
ret subList(l, 0, l(l)-1);
}
static L dropLast(Iterable l) {
ret dropLast(asList(l));
}
static S dropLast(S s) {
ret substring(s, 0, l(s)-1);
}