> which isn't all that different than as you've done Yeah because you cheated. ;-) I asked for a version that uses the "real" recursion that mine code has and an explicit tail recursion for the "for" loop. Two recursive calls with wildly different characteristics (one needs a stack, the other can do without one). But it's not that important.
Back to the major topic: For "better FP" to emerge inside Nim you need more restrictions to the mutability aspects but the solution IMHO is not "more immutability", it's "single owner mutability". Immutability simply throws away to many good things, I cannot imagine what an "immutable" lock or queue or channel would look like... ;-)