Perhaps we should issue a warning---or even an error?---when `int` or `uint` is used in a native type declaration? It is a very common mistake to assume they are the same as the C types `int` and `unsigned`. We could suggest the use of `ctypes::c_int` or `ctypes::long` etc.