What is the advantage of this circular implementation?
Is it faster than the simple one? Does it use less memory? Is it easier to write? Is it easier to understand?
I think all of the above is false, but I have a limited understanding of Haskell. Please correct me if I'm wrong.