Function signatures with void pointer return type get wrapped as void return type in Nim
Example header file: [`svdpi.h`][1]

Example lines from that:

```c
/*
 * Return a pointer to an element of the array
 * or NULL if index outside the range or null pointer
 */
XXTERN void *svGetArrElemPtr(const svOpenArrayHandle, int indx1, ...);

/* specialized versions for 1-, 2- and 3-dimensional arrays: */
XXTERN void *svGetArrElemPtr1(const svOpenArrayHandle, int indx1);
XXTERN void *svGetArrElemPtr2(const svOpenArrayHandle, int indx1, int indx2);
XXTERN void *svGetArrElemPtr3(const svOpenArrayHandle, int indx1, int indx2,
        int indx3);
...
```

From `cDebug()` output, I see that these are getting translated by nimterop to:

```nim
proc svGetArrElemPtr*(a1: svOpenArrayHandle; indx1: cint) {.
    importc: "svGetArrElemPtr", header: headersvdpi.}
proc svGetArrElemPtr1*(a1: svOpenArrayHandle; indx1: cint) {.
    importc: "svGetArrElemPtr1", header: headersvdpi.}
proc svGetArrElemPtr2*(a1: svOpenArrayHandle; indx1: cint; indx2: cint) {.
    importc: "svGetArrElemPtr2", header: headersvdpi.}
proc svGetArrElemPtr3*(a1: svOpenArrayHandle; indx1: cint; indx2: cint; indx3: cint) {.
    importc: "svGetArrElemPtr3", header: headersvdpi.}
...
```

So the void pointer return types are interpreted as just void.

Should these be:

```nim
proc svGetArrElemPtr*(a1: svOpenArrayHandle; indx1: cint): pointer {.
    importc: "svGetArrElemPtr", header: headersvdpi.}
proc svGetArrElemPtr1*(a1: svOpenArrayHandle; indx1: cint): pointer {.
    importc: "svGetArrElemPtr1", header: headersvdpi.}
proc svGetArrElemPtr2*(a1: svOpenArrayHandle; indx1: cint; indx2: cint): pointer {.
    importc: "svGetArrElemPtr2", header: headersvdpi.}
proc svGetArrElemPtr3*(a1: svOpenArrayHandle; indx1: cint; indx2: cint; indx3: cint): pointer {.
    importc: "svGetArrElemPtr3", header: headersvdpi.}
```

?


[1]: https://ptpb.pw/9z4q/c