// f: func -> A | endMarker static IterableIterator iff(O f) { ret iteratorFromFunction_withEndMarker(f); } // can't use type parameter because end marker static IterableIterator iff(F0 f) { ret iteratorFromFunction_withEndMarker(f); } static IterableIterator iff(IF0 f) { ret iteratorFromFunction_withEndMarker(f); }