Ha, even this works!
[...]
<control-structure-phrase> ::= [...]
while/until/for ... | [...]
<end-control-structure-phrase> ::= [...]
end while/until/for |
[...]
to for each/-- (i - nonexisting K variable) in (L - list of values of kind K)
begin -- end loop:
(- {-primitive-definition:repeat-through-list} -).
to for each/-- (loopvar - nonexisting K variable) in (OS - description of values of kind K)
begin -- end loop:
(- {-primitive-definition:repeat-through} -)