// f must return a string
static S joinMap(O f, Iterable l) {
ret join(map(f, l));
}
static S joinMap(Iterable l, O f) {
ret joinMap(f, l);
}
static S joinMap(Iterable l, IF1 f) {
ret joinMap(f, l);
}
static S joinMap(A[] l, IF1 f) {
ret joinMap(f, l);
}
static S joinMap(IF1 f, Iterable l) {
ret join(map(f, l));
}
static S joinMap(IF1 f, A[] l) {
ret join(map(f, l));
}
static S joinMap(S separator, Map map, IF2 f) {
ret join(separator, map(map, f));
}