Introduction
Conditional conformance lets a type follow a protocol only if its parts also follow that protocol. This helps write flexible and reusable code.
When you want a generic type to conform to a protocol only if its generic parameters conform.
When you have a container type like an array or dictionary and want it to conform to a protocol only if the elements do.
When you want to add functionality to a type only under certain conditions.
When you want to avoid writing many versions of the same code for different types.