Most aggregate types support various constructors (as described in their specific sections), some of which use the syntax x in S to iterate over the elements of a structure S during the construction. If this structure S supports dual iteration, then the syntax i -> x in S is also allowed in such situations (and consequently both i and x may be used in the associated expressions). The meanings assigned to i and x during dual iteration will be explained in the sections for those types which support it.