With and without Tail Call Optimisation