static A mapLike foldl(F2 f, A seed, Iterable l) {
A a = seed;
if (l != null) for(B b : l)
a = callF(f, a, b);
ret a;
}
static A mapLike foldl(F2 f, A seed, B[] l) {
A a = seed;
if (l != null) for(B b : l)
a = callF(f, a, b);
ret a;
}
static A mapLike foldl(O f, A seed, B[] l) {
A a = seed;
if (l != null) for(B b : l)
a = (A) callF(f, a, b);
ret a;
}