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) -> …?

questionAnswers(2)

yourAnswerToTheQuestion