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.