> On Nov 21, 2017, at 9:21 PM, Chris Lattner <[email protected]> wrote:
>
>
>
>> On Nov 21, 2017, at 7:19 PM, Douglas Gregor via swift-evolution
>> <[email protected] <mailto:[email protected]>> wrote:
>>
>>
>>
>> Sent from my iPhone
>>
>> On Nov 21, 2017, at 3:46 PM, Tony Allevato <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>> Does that mean that once structural types can conform to protocols, would
>>> the core team want to remove Optional as a nominal type and just use “T?”?
>>
>> Yes; at least, it’s a direction we’ve discussed a number of times.
>>
>>> Or has that ship sailed because of source compatibility and you just don’t
>>> want to introduce any new nominals that shadow structurals?
>>
>> typealias Optional<T> = T?
>>
>> Should address source compatibility.
>
> Or alternatively, one could decide to make the generics system *only and
> forever* work on nominal types, and make the syntactic sugar just be sugar
> for named types like Swift.Tuple, Function, and Optional. Either design
> could work.
We don’t have a way to make it work for function types, though, because of
parameter-passing conventions. Well, assuming we don’t invent something that
allows:
Function<Double, inout String>
to exist in the type system. Tuple labels have a similar problem.
- Doug
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution