[Haskell-cafe] optimization of recursive functions