Por que um método de instância tem esse tipo no Swift?
Dado este código:
struct Foo {
func f() {}
}
let f = Foo.f // (Foo) -> () -> ()
Porquef
tem o tipo(Foo) -> () -> ()
e não(Foo) -> ()
? Não faria sentido, por exemplo, métodos comoFoo.f
seja diretamente intercambiável com funções livres do tipo(Foo) -> …
?