T... seems to have been ruled out now, I'd like to comment on it anyway. One drawback of writing the type explicitly is that you … have to write the type explicitly. There's a conceptual load in making sure you write the right thing.
For example, if you have this:
let a = [0, 1, 2]
… a as Int... …
you have to figure out that
Int is the correct type. If you realize that you want this instead:
let a = [0, 1.1, 2]
… a as Double... …
then you annoyingly have two changes to make.
Personally, the alternative syntax I'd prefer, out of the things suggested in this thread, is:
`a as ...`
... is just a sigil, not a postfix operator. If you think in these terms:
`[0, 1, 2] as ...`
there's a nice internal anti-symmetry.