def iter(str): return SomeIterator(str)
def builtin_enumerate(s_obj): return SomeIterator(s_obj, "enumerate")
def method_itervalues(dct): return SomeIterator(dct, 'values')
def method_iteritems(dct): return SomeIterator(dct, 'items')
def method_iterkeys(dct): return SomeIterator(dct, 'keys')
def iter(dct): return SomeIterator(dct)
def iter(lst): return SomeIterator(lst)
def iter(tup): getbookkeeper().count("tuple_iter", tup) return SomeIterator(tup)
def union((iter1, iter2)): s_cont = unioncheck(iter1.s_container, iter2.s_container) if iter1.variant != iter2.variant: raise UnionError("merging incompatible iterators variants") return SomeIterator(s_cont, *iter1.variant)