Rangeのバグ?

Range
l := 0 to(9) asList
r := 10 to(11)

l foreach(x, 
	r foreach(y, 
		list(x, y) println
	)
)

あれれな出力

list(0, 10)
list(0, 11)
list(1, 11)
...
list(9, 11)

こうするのが正しいのか

Range
l := 0 to(9) asList
r := 10 to(11)

l foreach(x, 
	r rewind foreach(y, 
		list(x, y) println
	)
)

それはどうか。って感じもするが。
Rangeはイテレータっぽいものみたいだ。