That's great. I tried it and worked really well. I like that it just works. I don't like much that the generated binding requires about 3 times more lines: when not declared(pixwrite): proc pixwrite*(fname: cstring; pix: ptr Pix_520094250; format: lint32_520094097): lok_520094087 {. cdecl, importc: "pixWrite".} else: static : hint("Declaration of " & "pixwrite" & " already exists, not redeclaring") Run
versus: proc pixWrite*(fname: cstring; pix: ptr Pix; format: LInt32): LOk {. importc: "pixWrite".} Run I wonder if the `when`/`else` can be deactivated. Just to have the API in a more compact way. I don't like much the naming of the types, but I get that come fixed with `sed`. I will try it in the future for sure. Any plan to the same with C++ or is not possible?