Given a protocol extension that provides a default implementation conditionally, why does calling `describe()` on `value` print "default" rather than "int"?
protocol Describable {}
extension Describable {
func describe() -> String { "default" }
}
extension Describable where Self == Int {
func describe() -> String { "int" }
}
extension Int: Describable {}
let value: Describable = 42
print(value.describe())