Word16 is:exact

16-bit unsigned integer type
16-bit unsigned integer type
ShortByteStrings encoded as UTF16-LE, suitable for windows FFI calls. Word16s are *always* in BE encoding (both input and output), so e.g. pack takes a list of BE encoded [Word16] and produces a UTF16-LE encoded ShortByteString. Likewise, unpack takes a UTF16-LE encoded ShortByteString and produces a list of BE encoded [Word16]. Indices and lengths are always in respect to Word16, not Word8. All functions will error out if the input string is not a valid UTF16 stream (uneven number of bytes). So use this module with caution.