Scala で似たような call by need のための class が再発明されている件

他にも知ってたら教えて下さい。上記に挙げたのは、ちょっとくらい作りが違ってもすべてcall by need だと思いますが、「これは call by name だよ!」など間違いがあったら教えて下さい。


sbtの実装の場合、以下の行
https://github.com/sbt/sbt/blob/v0.12.0/compile/api/SafeLazy.scala#L21
で、 「値を生成するための関数に対して null を代入」 することにより、それが GC されるようにしてあるという、細かい配慮がされている。
Scala本体のほうのコメントには、 issue5187 objects should override lazy values *1 へのリンクがあり、
「class内のobjectがlazy val を override できるようになれば、こんなことしなくてもすむかもしれない?」
ということだろうか?

*1:このblog書いてる時点では未解決なissue