iterator: simplify type choosing