var collection: ??? = [] for foo in foos { collection = collection.appended(foo) } みたいなのができない。??? の部分がループ回るごとに変わる。collection の型をシャドーイングで上書きしていく。 (edited)HeterogeneousSequence プロトコルとかを導入して、それに適合した型が for に渡された場合はコンパイラがアンロールっていう挙動に改造すればいけると思うんよね。
(edited)