>>859
>>860

> なので、 IOArray や STArray を使っているかぎり、(==)は要素の比較のみしてくれるはず。

要素の比較ではなくて、参照で比較するから速いんですよね。
アドバイスを受けてから調べてみましたが、こんなページを見つけました。
http://www.macs.hw.ac.uk/~dsg/gph/docs/4.06/users_guide/ghc-language-features.html
ここにも、要素同士の比較ではないと書かれていました。

> モナディックにするのがいやなら、配列を生成/変更するときにハッシュ値でも計算してそれを比較するようにするとか。

なるほど、そういう方法もありますね。
今思いつきましたが、どこがどう変更されたのかは知る必要は無く、
直前のものから変更された事だけ分れば十分なので、生成変更するたびに
2値の On Off スイッチみたいなものもをいっしょに記録しておく手もありそうです。
前回が On で今回も On なら終了とか。

両方の方法で試してみます。
アドバイスありがとうございました。