再帰するメソッドの罠にはまった。
これって仕様?勘違いしてるのか?

f := method(n,
	if (n > 0,
		message(foreach) uniqueId println 
		f(n - 1)
	)
)

f(4) #=> 4477112
         4477112
         4477112
         4477112

異なるオブジェクトを生成しているつもりで、そうなっていない罠

message(foreach) uniqueId println #=> 4472544
message(foreach) uniqueId println #=> 4716608

この場合は、違ったIDが出力される
とりあえず clone すれば問題ない模様