The goals for the design of the Proteus 2 grammar were:
``[ Iterator | Predicate : expr ]''
where the ``| Predicate'' clause is optional.
This change makes the ordering of the items in a generator more like the ordering of a for statement in other languages. This make nested generators easier for programmers to read.