Swift の Array型の(書き換え可能な)変数の挙動が変だと、少し前に話題になっていたけれども、
var x = [1, 2, 3] : Array
なんてやったら x の型は(OCaml風の記法で)int array ref 型なんですが、int array は int list ref とか int table ref みたいなものだと思うと、x の型は int table ref ref みたいになるわけで、そりゃ、取扱いには注意せにゃならんでしょうよ。本当にこんな型の変数が必要なのかどうかから考え直すべきではないでしょうか。