Completely in favor of this, with a note that the syntax we use for the binding introducer (for inout foo
, for borrow foo
, etc) should match what is decided in borrow
and inout
declaration keywords.
As far as whether the default for
is borrowing or not, IMO, Swift should try to borrow if it can prove that exclusivity rules are upheld, and it shouldn't otherwise, and developers can explicitly use for borrow foo
if they want a diagnostic when that wouldn't be possible or if they want to take the risk that dynamic rules are still upheld.