Fixing tail call elimination