manual endianness restrictions now enforced with a newtype
With slight inspiration from http://github.com/jkff/storable-endian