static S commonPrefixCI(S a, S b) { int i = 0, nb = b.length(), na = a.length(), n = min(na, nb); while (i < n && eqic(a.charAt(i), b.charAt(i))) ++i; return i == nb ? b : substring(a, 0, i); } static S commonPrefixCI(L l) { if (empty(l)) ret ""; S s = first(l); for (int i = 1; i < l(l); i++) { if (empty(s)) ret s; s = commonPrefixCI(s, l.get(i)); } ret s; }