static L mAp(Iterable l, O f) { ret map(l, f); } static L mAp(O f, Iterable l) { ret map(f, l); } static L mAp(Iterable l, F1 f) { ret map(l, f); } static L mAp(F1 f, Iterable l) { ret map(f, l); } static L mAp(IF1 f, Iterable l) { ret map(f, l); } static L mAp(Iterable l, IF1 f) { ret map(l, f); } static L mAp(IF1 f, A[] l) { ret map(f, l); } static L mAp(A[] l, IF1 f) { ret map(l, f); } static L mAp(O f, O[] l) { ret map(f, l); } static L mAp(O[] l, O f) { ret map(l, f); } static L mAp(O f, Map map) { ret map(f, map); } // map: func(key, value) -> list element static L mAp(Map map, O f) { ret map(map, f); } static L mAp(Map map, IF2 f) { ret map(map, f); }