When a while loop has statically known condition (i.e., when it should be unfolded into a static value) the loop side effects are not reified. Only the resulting value or nothing at all if there is no value. E.g.,
(while len
(set x 0)
(decr len))
should be reified to
len times for statically known len, but it is turned into nothing.
Note, that for an expression that construct pure value it works correctly (though any side effects are not observable).