TIL protocol in Swift could be constrained to inherit from a particular class. Two syntaxes are available:

protocol MyView: UIView { /*...*/ }
protocol MyView where Self: UIView { /*...*/ } 

Read Swift evolution proposal Class and Subtype existentials.