遅延評価による不確定性原理

関数型言語はよく知らないけど、LL Ring で、Haskellデバッグするときに関数の現在の状態を観測してしまうと、観測によって評価順序が変化してしまうというので、不確定性原理ぽい話だなぁと思って妙に感心してしまった。評価順序ってのも副作用に入るの? 評価順序そのものは悪くなくて、非正格関数を使わなければ結果はかわらんので正格関数だけ使えということなんだろうか...。ああ、でも遅延評価を使うってことは非正格関数を使うってことと同じなのか? 観測する前の状態に戻せるよとかいう機能があれば問題ないような気もする。