concurrent cellのFRPの実装においてfilterがメモリリークする問題があって、どうするべと悩んでいたのだけれど、まさに解決策があった。SRFI-45(http://srfi.schemers.org/srfi-45/)とその日本語訳(http://www.katch.ne.jp/~leque/translations/srfi-45/srfi-45j.html)。紹介してくれた&日本語訳を公開してくれているleque氏に感謝感激雨あられ。なにはともあれ、OCamlで同等のプログラムにしてみた。テストも何もしていないので怪しいけど、たぶんこんな感じ。OCamlにはdefine-syntaxなんてないので、そこはlazyにしてある。 let (!$) = Lazy.force type 'a exp = 'a Lazy.t and 'a t = ILazy of 'a pro