<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><blockquote type="cite" class="clean_bq"><blockquote class="clean_bq"><div id="bloop_customfont" style="margin: 0px;"><div><blockquote class="clean_bq"><span style="font-family: 'helvetica Neue', helvetica;">'struct<>' does seem redundant unless it becomes subtypeable. If you want a struct which conforms to several protocols, protocol<> already covers this.</span></blockquote></div><p>I think this is not correct. Lets check this example:</p><p>func foo(value: SomeProtocol) {</p><p> if let a = value as? struct<StructA, SomeProtocol> { /* do something with a */ }</p><p> else if let b = value as? struct<StructB, SomeProtocol> { /* do something with b */ }</p><p>}</p><p>In this scenario you’ll be able to access properties and functions from `StructA` or `StructB` which might not be covered by `SomeProtocol`. Everything is merged nicely into one instance. But you are right it depends on the use-case.</p></div></blockquote><div><br></div>There is no need to include the protocol here. Just do this:<div><br></div><div><div id="bloop_customfont" style="margin: 0px;"><p><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">if let a = value as? StructA { use a }</span></font></p></div></div></blockquote></div> Whoops, I forgot that this will do the trick. I apologize for any confusion here, you are totally right.<div><br></div><div>That been said, do we really need `type<>` aka. `all<>` for value types? I need to rethink this part of the proposal. Is there any use-case where we would need this (any scenario for the future Swift version also counts)?</div><div><br></div><div>If we had `all<>` in Swift already for extendable reference types and one day structs would become subtypeable, this wouldn’t be a huge problem to upgrade `all<>` for structs I guess.</div><div><div><br> <div id="bloop_sign_1463161158556201984" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">-- <br>Adrian Zubarev<br>Sent with Airmail</div></div> <br></div></div></body></html>