Any
any P
protocol P {} struct S1<K> {} extension S1: P where K == Int {} func castToP(_ x: Any) -> any P? { x as? any P }