#いじって遊べる小さい処理系なら C だけで書かれてる Hugs98 と思う。
##eager なやつはいっぱいあるんですけど、lazy evaluation は実装が重くなりがちな気がしています、個人的に。
#どこまで type class のしくみがんばるか、とかも(これはあまりたいしたことじゃないけど)
##goferはすこし読んだり改造したことがあります。memoise機構をもつλ式を扱えるように改造したりしました。
##全然進歩してない > 儂 orz
#category は type theory を説明する道具なだけだから、Haskell 使うには必要ない
#ただ、型で計算する遊びにはまってるので、どうせなら一般的な方法で、ということで勉強しているところ
#任意の置換が互換の積からでてくるように、任意の「再帰的に定義された関数」が catamorphism で定義できるというのがおもしろい
#さらに、再帰的に定義されてなくても (例 : ack
#Ackermann 関数とか
#curry ack は fold で書けて、結果的に catamorphism で定義できる
#そういう、関数の「母」みたいな性質がおもしろいので理解したいと思っている
#実用上の目的は、Haskell 内の DSL を Haskell で定義するときに使うことで、たとえば XML とか、Web Application とかを、catamorphism で表現してみたい
#そういうことができる、と1990年代の本や論文に書いてある