struct A<T> { } extension A where T == Bool { typealias B = String } extension A { typealias B = Int }