On that note...
2. I hope I got the types right. I got a bit confused because
`unsigned-integer` seems to only accept values up to
INT_MAX
not up to UINT_MAX, which wasn't clear to me from the
documentation here:
http://wiki.call-cc.org/man/5/Foreign%20type%20specifiers#integers
Yeah, I had a look at that. The unsigned-integer type can
definitely hold UINT_MAX, but the problem is that you're passing
it to pointer+ which is defined to take "integer", which maps to
the "int" type in C, resulting in a loss of precision.