+1

-Thorsten

> Am 18.12.2017 um 08:42 schrieb Elviro Rocca via swift-evolution 
> <swift-evolution@swift.org>:
> 
> While it's definitely worth knowing, it's not a really usable substitute for 
> higher-kinded types in production code, and still requires a lot of code 
> generation, which is eased in Kotlin thanks to its annotation/metaprogramming 
> features.
> 
> Event the Kategory people recognized that the emulation approach is a 
> temporary solution, waiting for the approval of a proposal for the addition 
> of HKTs to Kotlin itself.
> 
> Unfortunately, if we don't get HKTs in Swift we're simply going to miss on a 
> barrage of extremely useful abstractions, upon that many contemporary 
> languages have started to rely, because they are simply the best known 
> solutions to many problems in many contexts.
> 
> The huge amount of work that's been done in academia in the last 15 years 
> (and it's still going) about applicatives - and also profunctor optics, 
> another thing that requires HKTs - is mostly going to elude Swift due to its 
> crucial lack of expressivity.
> 
> We're on the right track with the approval of the conditional conformance 
> proposal, but my fear is that the ABI stability requirement for Swift 5 is 
> going to lock the language interfaces in a state where it's going to be 
> impossible for these kinds of sophistications to be added to the language at 
> a later stage... I hope to be proven wrong here.
> 
> 
> Elviro 
> 
>> Il giorno 14 dic 2017, alle ore 15:40, Matthew Johnson via swift-evolution 
>> <swift-evolution@swift.org> ha scritto:
>> 
>> 
>> Thanks for jumping in and elaborating on a more general approach!  I don’t 
>> want to sidetrack the thread, but it actually is possible to encode 
>> higher-kindred types and protocols requiring them in Swift today.  It’s a 
>> bit clunky and requires some boilerplate but the technique is worth knowing. 
>>  https://gist.github.com/anandabits/f12a77c49fc002cf68a5f1f62a0ac9c4
>> 
>> Some Kotlin folks have created a pretty robust FP library using the same 
>> technique: http://kategory.io/.
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to