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.
I’m totally aware of that and mentioned it upthread.
Eh, sorry I missed it.
There are various encoding tricks that could make this work depending on how you want to stretch the current generics system…
I think it’s straightforward and less ugly to make structural types allow extensions and protocol conformances.
- Doug
···
On Nov 21, 2017, at 10:37 PM, Chris Lattner <clattner@nondot.org> wrote:
On Nov 21, 2017, at 9:25 PM, Douglas Gregor <dgregor@apple.com <mailto:dgregor@apple.com>> wrote: