When you specify (f: (Ord) => (Ord) => boolean), all TypeScript sees is that your are specifying function with one argument named Ord. You have not specify the type.
EDIT: I can see that it is a limitation in the current TypeScript. A request is filed here: https://github.com/Microsoft/TypeScript/issues/14173
In order to support this syntax, the compiler (and the language service) would need to introduce names themselves.
Consider when the code is being used:

It provides the same syntax as how a function should be defined in TypeScript. i.e. (name: Type) => .... If name is not introduced, it would be very confusing to the user.
On the other hand, if the arguments carry any specific meaning, it worthwhile IMO to provide the argument name, so that user know what to do.
It would be quite confusing for function like:
foo(cb: (number, number) => (number, string) => boolean)
What does it do?