[swift-evolution] [Proposal] Higher Kinded Types (Monads, Functors, etc.)

Douglas Gregor dgregor at apple.com
Thu Dec 17 12:42:43 CST 2015

> On Dec 16, 2015, at 5:18 PM, Will Fancher <willfancher38 at gmail.com> wrote:
>> while I agree that this kind of constraint is helpful and important for completing the generics picture, IMO it is probably less helpful/important than many people think.
> While I would love to see HKTs in Swift as soon as possible, and I personally would really appreciate a good Monad setup, I have to say I agree with this. It'd be great to have, but it's not as important as anything else on Swift 3's todo list.
> So this brings me to a question: If the community were to write HKTs into the language and submit a pull request, what is the likelihood that it would be accepted, despite the fact that the Swift team feels it is out of scope for their own Swift 3 efforts?

If the Swift core team decides that a feature is out of scope for Swift 3, the proposal will be deferred and will not come up for a public review. Discussion, design, and even out-of-tree implementation can proceed, but you can expect that the core team won’t be deeply involved because they have to focus on making Swift 3 happen.

One natural question that pops out of this is, “what if the feature was effectively ‘perfect’, with a detailed design proposal, complete implementation, updated standard library, examples showing how other external projects could benefit from this feature, etc?” Even then, the time it takes to carefully review a design—especially one as wide-ranging as higher-kinded types—for its interactions with the rest of the language, runtime, standard library, and Swift ecosystem is significant, and we’ve found that in many cases our time is more constrained by design review than it is even by implementation concerns.

	- Doug

More information about the swift-evolution mailing list