Spent some time with a recent snapshot and was really pleased with the experience! Great work, everyone!
One thing that came up was that composed protocols don't seem to be supported. E.g., should this work?
func f() -> some (A<Int> & B<Int>) { … }
This also made me wonder if "generic" type aliases should support primary associated types. E.g.:
typealias C<T> = (A<T> & B<T>)
func f() -> some C<Int> { … }
If so (or not), it would definitely be nice for the pitch to address things.
Edit: One other question is how does one document a primary associated type? Sequence
can document Element
as:
A type representing the sequence's elements.
But if it were redefined as Sequence<Element>
, where would this documentation go?