# File lib/extlib/lazy_array.rb, line 102 def [](*args) index, length = extract_slice_arguments(*args) if length == 1 && args.size == 1 && args.first.kind_of?(Integer) return at(index) end if index >= 0 && lazy_possible?(@head, index + length) @head[*args] elsif index < 0 && lazy_possible?(@tail, index.abs - 1 + length) @tail[*args] else lazy_load @array[*args] end end