Type aliases and protocol changes
Type aliases are named types that fill in for existing types in Swift. Once defined, you can use these types anywhere in your code. Swift 3 now supports type aliases based on generics. In addition, type aliases are now supported for protocols and protocol extensions. Speaking of protocols, Swift 3 made a change to protocol use that makes things simpler and paves the way for expected future changes to this feature. Let's add the new changes more closely and work through some examples.
Generic type aliases [SE-0048]
Generic type aliases are a new addition for Swift 3. As a reminder, a type alias is a way to declare a named alias for an existing type in the language. After you create your named alias, you can use the aliased type in your code just as you would any other type. Generic type aliases allow you to add type parameters that can be used in defining a generic type. Let's consider a few examples to show the new possibilities you have with creating type...