Will existentials ever conform to their protocols?

Hello Swift Community!

I know that I’ve seen this mentioned before, but what with Enhanced Existentials being brought up, I think this is worth mentioning now. What is the plan regarding letting existentials conform to their protocols? Currently, in Swift 3, it is impossible to write code like this:
protocol Updatable
  { func update() }

struct UpdatePool<T: Updatable>
  { /* ... */ }

let heterogenousPool = UpdatePool<Updatable>()
Error on the last line: “Using ‘Updatable’ as a concrete type conforming to protocol ‘Updatable’ is not supported.”

Although my most common use case of this behavior has actually been solved (using ‘AnyObject’ as a concrete type conforming to ‘AnyObject’), I wonder why this can’t be extended to any protocol existential (a field which is about to explode, if we succeed in Enhancing them).

What do you guys think?

+1, but I think there's a compiler limitation preventing it at the moment.

See my recent post: Re: [swift-users] Weird protocol behaviour.

Slava

···

On Jan 17, 2017, at 9:33 PM, David Sweeris via swift-evolution <swift-evolution@swift.org> wrote:
On Jan 17, 2017, at 22:30, Braeden Profile via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

- Dave Sweeris
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org <mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution