Pitfalls of protocol extensions

Swift protocols are an incredibly powerful language feature, allowing us to define a blueprint of methods, properties, and other requirements that suit a particular piece of functionality. It's also possible to extend protocols to implement default behavior or add additional functionality. In this post, Dmitrii Ivanov examines protocol extensions, presenting what he thinks are some drawbacks of using this language feature.