func foo() -> Int { ... } func foo() -> Double { ... } // 今 let f: () -> Int = foo // () -> Int の foo が代入される // Intersection があったら let f: (() -> Int)&(() -> Double) = foo let g = foo // ↑と同じ let h: () -> Int = foo // この場合 h の実体は何? () -> Int の foo ?それとも f や g と同じ?
(edited)func foo() throws BarError|BazError -> Foo
ができるので複数エラー投げられることになってしまって台無しに・・・。