Concurrent Clean, Haskell, OCaml: リスト,配列の操作演算子の比較

cons 連結 n番目の
要素
最初の
要素
残りの
リスト
n番目の要素
の更新
スライス
Clean list [a:aa] aa ++ bb aa !! n hd aa tl aa updateAt n elm aa aa % (i,j)
Clean array - aa +++ bb
(文字列のみ)
aa.[n] aa.[0] - aa := (n,elm)
(文字列のみ)
aa % (i,j)
(文字列のみ)
Haskell list a:aa aa ++ bb aa !! n head aa tail aa - -
OCaml list a::aa aa @ bb nth aa n hd aa tl aa - -
OCaml array - append aa bb aa.(n) aa.(0) - aa.(n) <- elm sub aa i len

平文に半角の[]を書くにはどうすればいいんだろう?(数値文字参照を使うのは、はてなの編集画面の不具合のため不可)
OCamlの @ って、一瞬、n番目の要素を取り出す操作かと思った。

ところで、リストや配列の aa !! n や aa := (n,elm) は、同じ演算子をシンボルテーブルに使って、dict !! key や dict := (key,val) とできると統一感があるなとか思った。そういう方向でCleanの型クラスをデザインしてみようかと思ったけれど、うまくできなかった。残念。