wchar_t is inherently unportable - on some platforms, it acts like
char16_t, on others it acts like
char32_t. Better to support both of those directly - in particular, in
ffi.unpack and when using
unicode objects as initializer for
cdata objects of the appropriate type.
Note that there is probably a lot of code that does
typedef uint16_t char16_t;. But I think there's already code to ignore builtin types when there's an explicit typedef - isn't that how