**1)** In **nextp_init** in the line below, **i** can start from eithre '0' or '1'. for i in 0|1..<rescnt: pos[residues[i]] = i-1 # start from either 0 or 1
**2)** The program needs to use unsigned math, so yes, it needs to use **uints**. I had a hard enough time to get all the type casting compatible, but if you want to rewrite it to not use ints you wll reduce the size of the inputs you can handle. Besides, uints are as old as programming, so shouldn't you fix making it work correctly rather than discourage its use? **3)** I've compiled using clang and gcc with: **\--cc:[clang:gcc]**. In a Manjaro VB VM is has clang 4.0.1 and gcc 7.1.1, and I've used another VM that has gcc 7.2.1. As stated in previous posts, I've comiled the Nim source under multiple directives, which just emphasizes the point to me the issue isn't the source code but its interpretation by the compiler, otherwise it would work correctly no matter how it is compiled, though its performance my differ. But again, the source is available for anyone to play with.