Protocols and associated types have always been somewhat of an interesting beast. They were hard to use sometimes, and before Swift 5.1 we would always have to resort to generics.
In Swift 5.1 Apple introduced the keyword. This keyword was key in making SwiftUI work because the protocol defines a requirement: If you’d write instead of you’d see the following compiler error in…