[Haskell-cafe] Understanding tail recursion and trees