Loop evaluation

Note that for repeat loops the expression is evaluated only once at the beginning of the loop, although the LRM doesn’t explicitly say this.