[Second review] SE-0516: `Iterable`

Should borrowing iteration support using borrowing to make this distinction visible?

for borrowing employee in company.employees {
  newCompany.employees.append(employee)
}

This could be used to require borrowing iteration.

  • If employees only adopts Iterable (not Sequence), borrowing would be optional and the loop would use borrowing iteration because it's the only one available.
  • If employees adopts both Iterable and Sequence, specifying borrowing would then use borrowing iteration, not specifying borrowing would use copying iteration.
  • If employees only adopt Sequence (not Iterable), specifying borrowing would be an error. (And not specifying it is the current situation where there is only copying iteration)