> On Nov 21, 2017, at 9:21 PM, Chris Lattner <clatt...@nondot.org> wrote: > > > >> On Nov 21, 2017, at 7:19 PM, Douglas Gregor via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> >> >> >> Sent from my iPhone >> >> On Nov 21, 2017, at 3:46 PM, Tony Allevato <tony.allev...@gmail.com >> <mailto:tony.allev...@gmail.com>> 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 swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution