The Swift generics system is extremely powerful. Protocols with associated types are everywhere and allow us to abstract over types with hidden type information. But they come with their complexity tax. Join David Hart in a journey through Swift's generics to better understand PATs, discover ways to overcome them, and how future Swift might resolve most of those issues.