For example, one might see an error like:
> Value of protocol type 'Cancellable' cannot conform to 'Cancellable'; only struct/enum/class types can conform to protocols
Hamish has written a great answer here: https://stackoverflow.com/a/43408193 .
1. We should make this diagnostic clearer (perhaps special casing when the two protocols are related), as it may not be obvious to the reader why this is not the case.
2. We should probably have an educational note for this.