This module uses the X-macro technique to keep a variant type in ML synchronized with an enum in C.
Although OCaml strings may legally have internal null bytes, it is expensive to check for them, so this library just assumes that it will never see such a string.