#eq?であるはずのデータ構造がeq?になってない。中身は全く同じ。どっかでコピーしてるはずだが… なんてことに悩むとimmutableな言語が欲しくなるが、immutableな言語でのaggregate typeの同一性判定ってO(1)にならない、んじゃないかな? (自信なし。うまい方法ある?) O(1)じゃなかったらアルゴリズムから考え直さないとならないからやっぱ無理かも。
#見つけた。木の変換の一ヶ所で部分共有のトポロジーを保存してなかった。
#木というかDAG。この時点では循環は無いはずだからと単純に再帰したのがまずかった。いっそのこと最初から全て部分共有・循環ありの前提で書いた方が間違いが少ないかもしれん。
#うゎかったぁぁ。半日悩んだ別のバグの原因が分かった。前から直さなきゃと思いつつ実害が無いから(単に無駄なコードが増えるだけ)と放置してたさらに別のバグが、実は悪さをしていたのだった。
#Lion上でのプロファイルですが、レイトレーシングで試したら、ちゃんと動いているようです。前に時間が0だったのは単に速く終わりすぎてサンプリングされていなかったせいかと。
#ありがとうございます。ということはLionの問題は(homebrewの)environ問題だけってことかな。当面。