protocol P1 { associatedtype T = Int } protocol P2 { associatedtype T: StringProtocol } struct S<T>: P1, P2 where T: StringProtocol { }