So here are my personal parts of the language I'd happily accept breaking changes in:
-
whereclauses (in extensions) in regards to type inference. There are type inference rules in the language which makes thewhereclause partly unintuitive to use as it yields somewhat unexpected results. -
The release / removal of of the
.Typeand.Protocol. A nestedKindtype does not always fit. A general rebranding of metatypes (possibly with ametakeyword, likeanyandsome) would be very welcome. -
Label rules alignment across the entire language including subscripts and operator functions.
-
A shift from
public protocoltoopen protocol, whereopen protocolwould mean that the user of a framework can conform their types to that protocol, while he/she can only use or view apublic protocol, but not conform any types to it. This is also known as "closed protocol". -
(possibly) A breaking change to key-paths where the types would also be able to store data for effects such as error types or possibly even the async-ness (if that's even a term).