I'd also add that for types (classes, etc) type parameters in brackets are actually "parameters" of the corresponding type "functor".
For a function, type parameters in brackets are more like quantified variables.
So, syntax difference does make sense to me.