It seems to me that one opposite example is missing:
protocol Fetchable {
func fetch() -> Data
func fetch(foo: Foo) -> Data
}
strict S: Fetchable {
var fetch: () -> Data { ... }
// when compound names are supported
var fetch(foo:): (Foo) -> Data { ... }
// or with syntactic sugar
var fetch: (foo: Foo) -> Data { ... }
}