pp4d - for文の拡張

forArray(TMyObject) (array) i obj
forList(TMyObject) (list) i val
forStrings(TMyObject) (stringlist) i name val

みたいな感じかな?
型名を()で囲ったのは、array of stringみたいなキャストがある可能性を考えたからで、配列変数を()で囲ったのは、Self.Values見たいな変数があることを考えたからです。意味解析してもいいんだけど、()の対応だけで分析する方が簡単かなと。
Collectionはどうすればいいんだっけな?