static L replaceAll(L l, final A a, final A b) { ret map(l, func(A x) { eq(x, a) ? b : x }); }