What exactly is your complaint? That function signature wasn't written in the way you wanted? You could always just mentally read a->b->c->d as a,b,c->d and use it accordingly.
Since you're touting the simplicity of Go, I can describe a reason why the function signatures is written like that: a,b,c->d would be a special case of a->b->c->d (multi-arity function without currying, I guess?), so it's not needed.
Since you're touting the simplicity of Go, I can describe a reason why the function signatures is written like that: a,b,c->d would be a special case of a->b->c->d (multi-arity function without currying, I guess?), so it's not needed.