callAsFunction が暗黙的変換されるようになったら、 SE-0249 で色々がんばらなくても KeyPath に callAsFunction 付けたらそれで済むと思うんだけど、それだと key path 式に限らず KeyPath 全般が変換できるようになるのと、 KeyPath に () でコールできるようになるのでまずいかな?foo[keyPath: \.bar] と \.bar(foo) は主従が逆だからいいんじゃないかな? callAsFunction を持つのは KeyPath 側、 subscript(keyPath:) を持つのは Foo 側。