Higher-kinded types
Higher-kinded types have the ability to reason about generic types with their type parameters as variables. Functors, Monads, and Applicative Functors are higher-kinded types and are not supported natively in the Swift 3.0 type system!
For curious readers, it is recommended to read the Swift Evolution Proposal (https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151214/002736.html) and the Generic manifesto (https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#higher-kinded-types).
According to the Generic Manifesto, higher-kinded types allow us to express the relationship between two different specializations of the same nominal type within a protocol. For example, if we think of the Self
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access