Freeモナドを抽象化?した究極のモナド「Idealモナド」がScalaでも作れたよー

以下のfumievalさんの記事に遅れること約2年・・・、ついにScala界隈にも、究極のモナド(?) Idealモナドが誕生した。
究極のモナド「Idealモナド」を垣間見る
究極のモナド「Idealモナド」を垣間見る(続/その0)

下のほうにその実装と、とりあえずIdealモナド経由でTrampolineを作って動かしてみた例を貼っておく。
ポイントは、単純なHaskellからの完全直訳ではなく、scalaz.Freeと同じようにGosubを作ったことにより、おそらくstack safeになった*1ことである(30を超えるフィボナッチが動くので、たぶん)


だがしかし、そもそも抽象化されてるのか、というかFreeではなくIdealにすることによる実用的な嬉しさが全く見えてないのと、かなり簡易的に計測しただけでも、Ideal版のTrampolineによるフィボナッチがscalaz.Freeの2倍程度遅いということだけがわかった・・・(完


誰か、実用的なIdealモナドの使い方教えてください・・・


https://gist.github.com/xuwei-k/1cb8954c6adf61f18643


追記

*1:スタックオーバーフローしない、という意味