Both a struct and a class conforms to a protocol. I use 2 protocol extensions with `where` conditions to add an implementation of the var property for both class and struct.

I'm quite surprised to see a compile error for classes only.

Why does this happen for classes and not for structs?

```
protocol MyProtocol {
    var property:String { get }
}

extension MyProtocol where Self == MyStruct {
    var property: String { return "" }
}

extension MyProtocol where Self == MyClass {
    var property: String { return "" }
}

struct MyStruct : MyProtocol {}

class MyClass : MyProtocol {} //Type 'MyClass' does not conform to protocol 'MyProtocol'

```