I guess looking at function types naively makes them look like binary expressions:
(A) -> B.
But that went out the window when error handling was introduced:
(A) throws -> B.
And they can also be attributed, which normal binary expressions can't:
@convention(c) (A) -> B.
They can't even be mixed with other expressions freely. AFAIU, they can only be used as expressions inside (…).self.
So, what is FunctionArrayPrecedence for? Maybe someone could shed a light on what you could do with it.