some Foo
func foo1() -> some Foo { return Foo1() } func foo2() -> some Foo { return Foo2() } var foo = foo1() foo = foo2() // コンパイルエラー