Concurrent Clean : トップレベルの関数定義

[id:syd_syd:20070624:p4]
トップレベルの'='はマクロじゃなくて関数になります。マクロは常に':=='です。

l = Cons 1 $ Cons 2 $ Cons 3 Nil

については、トップレベルで定義したので関数として解釈されるので、lを評価するたびに「新しい」グラフが生成されるので、一意型エラーにならないということです。
引数のない'='を定関数として解釈するか定グラフとして解釈するかはトップレベルとローカルスコープで違いがあって、それと一意型とが組み合わさるとちょっとしたネタになります。(そもそも、一意な定グラフというのは意味上存在し得ないという)
[id:lethevert:20051018:p1]