clang insists that our compat type is of correct signedness