static L replace(L l, A a, A b) {
for i over l:
if (eq(l.get(i), a))
l.set(i, b);
ret l;
}
sS replace(S s, S a, S b) {
ret s == null ? null : a == null || b == null ? s : s.replace(a, b);
}
sS replace(S s, char a, char b) {
ret s == null ? null : s.replace(a, b);
}