protocol A { associatedtype B func hoge(arg: B) } extension A where B == Void { func hoge(arg: Void) { // こっちはB無しでVoidが推論されるが } } extension A where B == Void { func hoge(arg: B) { // こっちはB無しだとコンパイルFail } }