public Object getAt(final IntRange range) {
final int from = range.getFromInt();
final int to = range.getToInt();
if (range.isReverse()) {
throw new GroovyRuntimeException("Reverse ranges not supported, range supplied is ["+ to + ".." + from + "]");
} else if (from < 0 || to < 0) {
throw new GroovyRuntimeException("Negative range indexes not supported, range supplied is ["+ from + ".." + to + "]");
} else {
return new Iterator() {
final Iterator iter = iterator();
Object next;
int count = 0;