User-defined typeclasses or type aliases in generic procs cannot be distinct
### Description

When defining a custom type alias or type class, the `distinct` keyword in argument position seems to not do anything as implied in the manual. It neither works with explicit nor implicit generics.

```nim
type Array2d[W, H: static[int]] = array[H, array[W, int]]

proc normal(a: Array2d, b: Array2d) =
  echo len(a), ", ", len(b)

proc dist(a: Array2d, b: distinct Array2d) =
  echo len(a), ", ", len(b)

proc doubleDist(a: distinct Array2d, b: distinct Array2d) =
  echo len(a), ", ", len(b)
  
proc explicit[A, B: distinct Array2d](a: A, b: B) =
  echo len(a), ", ", len(b)
  
let a = [[0, 1]]
let b = [[0, 1, 2]]
explicit(a, b)
doubleDist(a, b)
dist(a, b)
normal(a, b)
```

### Nim Version

Nim Compiler Version 2.2.0 [Windows: amd64]
Compiled at 2024-10-02
Copyright (c) 2006-2024 by Andreas Rumpf

### Current Output

```text
Error: type mismatch
Expression: explicit(a, b)
  [1] a: array[0..0, array[0..1, int]]
  [2] b: array[0..0, array[0..2, int]]

Expected one of (first mismatch at [position]):
[1] proc explicit[A, B: distinct Array2d](a: A; b: B)
```


### Expected Output

```text
1, 1
1, 1
1, 1
1, 1
```


### Known Workarounds

_No response_

### Additional Information

_No response_