That's a neat solution but isn't appropriate in this case. The iteration has to be X1 to X2 because the x values are tied to Yvalues and your suggestion would change the x,y pairs.
In the meantime I've come up with the ghastly apparition of
iterator myStep( a,b: int):int=
var a1 = a
var b1 = b
if a<=b:
while a1<=b1:
yield a1
inc a1
else:
while a1>b1:
yield a1
dec a1
Run
but won't be able to test it until monday <sigh>
