fn(func: ($T, T, T, T) -> T, T, T, T, a, b, c, d: T) -> T, T, T, T { /* ... */ }
It should be possible to work around it by wrapping the entire function signature in () for now but we may wish to enforce the use of () to wrap the return type when there are multiple returns. That way we can assume there is only 1 return type if it's not parenthesized.