Concurrent Clean : 定グラフと定関数

純粋で遅延評価の文脈で、定グラフと定関数の違いに意味があるのかが分からなくて混乱していた。純粋であるから定関数はなんど計算しても同じ値を返すし、遅延評価であるのから定グラフは必要になるまで計算されないはず。
http://sky.zero.ad.jp/~zaa54437/programming/clean/LanguageReport21/Chap3.html#sc12
だから、定グラフと定関数の違いは、実行上の違いしかない。そのため、上にあるように、「=」が文脈によって関数と定グラフのどちらかに解釈される。大域でも定グラフとして解釈されても問題ないような気がするけど、大域の定グラフはガーベジコレクションの対象にならないから、これが妥当なのでしょう。
[id:lethevert:20051018:p1]
あと、上にあげているように、一意型が関係すると、定グラフと定関数では、コンパイラの動作に影響を与える。