sclass mapI_if1_It extends IterableIterator { IF1 f; Iterator i; *() {} *(IF1 *f, Iterator *i) {} public bool hasNext() { ret i.hasNext(); } public B next() { ret f.get(i.next()); } toString { ret formatFunctionCall('mapI_if1, f, i); } } static ItIt mapI_if1(IF1 f, Iterable i) { ret new mapI_if1_It(f, i.iterator()); } static ItIt mapI_if1(Iterable i, IF1 f) { ret mapI_if1(f, i); }