Evaluation bug in while loop implementation

This bug occurs when we don't know how many times the loop will run at runtime, but if we did then we'd be able to evaluate everything inside the block. In this scenario we need to treat everything that the block might change as unknown to force evaluation at runtime, but at the moment we just evaluate it as if it were going to run only once and then proceed.