iterator pairs(x: seq[int]): tuple[key: ptr int, val: int] = var i: int = 0 while i < x.len-1: yield (i.addr, x[i]) inc i var foo = @[1,2,3,4] for i, x in foo.pairs: echo x inc i[] # Incredibly stupid solution