Pickler CombinatorsとかEmbedded Interpretersとか

の話がいつの間にかLtUで流行っていたらしい。

http://lambda-the-ultimate.org/node/2243
http://lambda-the-ultimate.org/node/552

要するに、一般に「型τを与えられてから、τ型の値を受け取る/返す」ような関数をMLでどう実装するか、という話。(Cf. http://d.hatena.ne.jp/sumii/20060130/1138597161)

私の知る限り、この手の話はType-Directed Partial EvaluationをMLでどう実装するかという問題に端を発して、(Danvyによれば)Filinskiが最初に"TDPE Combinators"を提案したらしい。Danvyも論文を書いている。Danvyの学生だったYangも独立に提案したそうで。

私も卒論が終わってTDPEの論文を読み、MLでどうやって実装するか悩んでいたらDanvyのpretty printer combinatorsを紹介され、それを見てTDPEを実装してDanvyにメールしたら「君で3人目だ」と言われました。つまり二番煎じどころか三番煎じでした(というかDanvy自身もいたので四番煎じ)。本当にありがとうございました。