GATs are removing some restrictions on the existing facilities of traits, and less creating totally new features. To be clear figuring out the subtleties of exactly how this is verified and edge cases with the type system is non-trivial, but as a developer this extends the set of types that “just work” as associated types. Crucially, it allows avoiding some weird hacks to get the borrow checker happy with non-static lifetime associated types in many situations.