> Or at least it shouldn't look like an existing range with a number and > comma prefixed to it. The 2..18 looks like a range to me. I like the idea, > but not the proposed syntax. Something like (0..18, 2) would be much > cleaner visually (at least for me), and you could think of the 2nd > position as a parameter that normally defaults to 1. But it wouldn't be compatible, and it wouldn't be simple. Try: (0..18).skip(2) maybe Range can be changed. currently it has: start end closedness (start or both) it could have: start end closedness (start, end, both, neither) skip (default: 1) Trivially, (0..18) creates a range with a skip of 1; calling the skip method with n creates a new range whose skip has been changed to n (or multiplied by n ?) skip(2) makes range call .succ.succ instead of .succ; but with skip(1000) this may be an issue; so why not use .+ instead of .succ ? what about negative skips, and how should they be handled? Alternatively, a separate StepRange (< Range ?) could be created, if one wishes not to mangle the current Range. Oh, and #skip could be called STEP like in BASIC (just lose the uppercases)... after all, we got downTo from PASCAL... (through SmallTalk or not) matju