With the addition of protocol extensions in Swift 2, the only serious problem we are having with Swift is the inability to use generic protocols as a type for variables, fields, inputs, and outputs. So having variables of type MyCollection<Int> or MyCollection<where Elem == Int> if MyCollection is a protocol.
Having read the relatevant threads and seen the ugly AnySequence/AnyGenerator hacks, I recognize that this is a known issue. However for us this is a serious problem that overshadows the many innovative features of Swift. In every language we use, we separate interface from implementation. We import and depend on public abstract interfaces / protocols / traits / types. These are implemented by private concrete classes. We can't do this in Swift because we can't depend on generic protocols. Perhaps I am missing something?
So I'm wondering, does anyone know whether there are plans for this?