compilable iterator