Looks good to me, I think it is correct that we compare all bytes, since only trailing 0-bytes are stripped (`as\x00d\x00\x00` is 'as\x00d`). Probably doesn't matter, but `elsize` actually is int I think