Concurrent Clean : Finger Trees : 正格性

正格性をどの程度設定するかを検討している。
http://www.kmonos.net/wlog/76.html#_1947070805
にあるように、ある程度の非正格性を残して置く方がよいケースもあるのだけれど、一般的には正格にできるところは正格にしておく方が効率がよい。
Annotated finger treesなので、measureするところで計算が発生する。この計算は、最悪で全要素をなめるので、この計算のところで木全体が評価されてしまう。さらに、この計算は、要素の追加削除で計算結果が捨てられる可能性があり、計算全体が無駄になる可能性がある。なので、この計算は非正格にしておく方がよい。
しかし、それ以外の部分はどうだろうか?
例えば、append操作をしたときに、追加する要素のリストのスパインを正格評価するということは、許容できるのだろうか?
このあたりは、内部の処理がリストよりも複雑なので、リストのように評価順がわかりやすいわけではなく、Finger treeの性質上、後ろの方の要素が先に評価されることもあるので、非正格にしてもあまりメリットはなさそう。なので、入力するリストのスパインを正格評価するのは避ける必要はないと思う。
避けることを検討するべきは、k.inabaさんが指摘しているケースだけで、それを避けるには再帰している木のところだけを非正格にすればよいということになると思う。はたして、それを避けることはどの程度メリットがあるのだろう?