scheme の set! は納得がいかん。

(define x '#(1))

てして、長さ1のベクタへ x をバインドしておきながら、

(set! x '#(1 2))

どうして、そこに長さ2のベクタを代入できるんだ?
その点 string-set! は納得がいく。