Type error when sink added to parameters
### Description

Adding 'sink' to type parameters seems to cause type errors when it doesn't seem like there should be any. For example, I expect this to pass type checking:

```Nim
type
  A = object
  B = object
  C = object
  
proc foo(input: sink tuple; adding: sink tuple; output: var tuple) =
  output = (input[0], adding[0], adding[1])

let combine: proc (existing: sink (A, ), newValues: sink (B, C), output: var (A, B, C)) {.nimcall.} = foo
```

When the only change you make is to remove the `sink` from the types, it works:

```nim
type
  A = object
  B = object
  C = object
  
proc foo(input: tuple; adding: tuple; output: var tuple) =
  output = (input[0], adding[0], adding[1])

let combine: proc (existing: (A, ), newValues: (B, C), output: var (A, B, C)) {.nimcall.} = foo
```

### Nim Version

```
Nim Compiler Version 2.0.0 [Linux: amd64]
Compiled at 2023-08-01
Copyright (c) 2006-2023 by Andreas Rumpf

git hash: a488067a4130f029000be4550a0fb1b39e0e9e7c
active boot switches: -d:release
```

### Current Output

```text
Hint: used config file '/playground/nim/config/nim.cfg' [Conf]
Hint: used config file '/playground/nim/config/config.nims' [Conf]
......................................................................
/usercode/in.nim(10, 103) Error: type mismatch: got 'proc (input: tuple, adding: tuple, output: var tuple)' for 'foo' but expected 'proc (existing: sink (A,), newValues: sink (B, C), output: var (A, B, C)){.nimcall.}'
```


### Expected Output

```text
Expecting type checker to pass
```


### Possible Solution

_No response_

### Additional Information

_No response_