My specific use case was working with 'infinite lists', so the first options is ruled out.
The second option could be a solution, but the specific case was reusing a variable `const nums = iu.iterate(x => x+1, 1)`, and quite extensively. (It's just a helper function to make a list of all natural numbers)
It would be so much nicer if I could just reuse this variable throughout my code
I know that as per the iterator spec this is normal behaviour. It just seems to me that the behaviour that follows from this is really quite strange. When I want to be able to loop over the contents twice, how am I supposed to to that?
Because now it does this