The newtype I8 in Data.Text.Foreign does not expose its constructor. Is that intentional?
I would like to use I8 as a semantic distinction to prevent mixing up byte-offsets and character-offsets, in code that ultimately passes the values to takeWord8 and dropWord8.