レイトレ

結局動くことはありませんでした。というのも、再帰が深すぎて遅すぎて動作しません。
再帰が深い = 遅いという図式は一般的に成り立つものではないのですが、この場合再帰が深い = ループが多いと判断してください。後はメモリの関係上かな。Perlで書いたインタプリタも、再帰回数が1000回を越えたあたりでどうしようもなくなってるようです。多分後ろで頑張ってガベコレが働いていると思うのですが。
ということで、アルゴリズムを書き換えなくてはどうしようもありません。MLでは普通に通ったアルゴリズムなのになあ。とはいえ、O(3^n)というexptimeかつexpspaceアルゴリズムは動くわけが無いといえばその通りではある。もちろんnは小さくてn < 10なのだけれど、これを2Dとかいうありえない言語で記述すれば当然定数倍がひどいことになるのは自明。