Swift extensions can help you add functionality to named types, and give your protocols more power with default implementations!
This is a companion discussion topic for the original entry at https://www.raywenderlich.com/28433240-programming-in-swift-functions-types/lessons/43