Tail recursion
See
Haskell Tail recursion